/*
 *
 * Copyright 2015 gRPC authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

#include <grpc/support/avl.h>

#include <stdio.h>
#include <string.h>

#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/useful.h>

#include "test/core/util/test_config.h"

static int* box(int x) {
  int* b = static_cast<int*>(gpr_malloc(sizeof(*b)));
  *b = x;
  return b;
}

static long int_compare(void* int1, void* int2, void* unused) {
  return (*(int*)int1) - (*(int*)int2);
}
static void* int_copy(void* p, void* unused) { return box(*(int*)p); }

static void destroy(void* p, void* unused) { gpr_free(p); }

static const gpr_avl_vtable int_int_vtable = {destroy, int_copy, int_compare,
                                              destroy, int_copy};

static void check_get(gpr_avl avl, int key, int value) {
  int* k = box(key);
  GPR_ASSERT(*(int*)gpr_avl_get(avl, k, nullptr) == value);
  gpr_free(k);
}

static void check_negget(gpr_avl avl, int key) {
  int* k = box(key);
  GPR_ASSERT(gpr_avl_get(avl, k, nullptr) == nullptr);
  gpr_free(k);
}

static gpr_avl remove_int(gpr_avl avl, int key) {
  int* k = box(key);
  avl = gpr_avl_remove(avl, k, nullptr);
  gpr_free(k);
  return avl;
}

static void test_get(void) {
  gpr_avl avl;
  gpr_log(GPR_DEBUG, "test_get");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(1), box(11), nullptr);
  avl = gpr_avl_add(avl, box(2), box(22), nullptr);
  avl = gpr_avl_add(avl, box(3), box(33), nullptr);
  check_get(avl, 1, 11);
  check_get(avl, 2, 22);
  check_get(avl, 3, 33);
  check_negget(avl, 4);
  gpr_avl_unref(avl, nullptr);
}

static void test_ll(void) {
  gpr_avl avl;
  gpr_log(GPR_DEBUG, "test_ll");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(5), box(1), nullptr);
  avl = gpr_avl_add(avl, box(4), box(2), nullptr);
  avl = gpr_avl_add(avl, box(3), box(3), nullptr);
  GPR_ASSERT(*(int*)avl.root->key == 4);
  GPR_ASSERT(*(int*)avl.root->left->key == 3);
  GPR_ASSERT(*(int*)avl.root->right->key == 5);
  gpr_avl_unref(avl, nullptr);
}

static void test_lr(void) {
  gpr_avl avl;
  gpr_log(GPR_DEBUG, "test_lr");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(5), box(1), nullptr);
  avl = gpr_avl_add(avl, box(3), box(2), nullptr);
  avl = gpr_avl_add(avl, box(4), box(3), nullptr);
  GPR_ASSERT(*(int*)avl.root->key == 4);
  GPR_ASSERT(*(int*)avl.root->left->key == 3);
  GPR_ASSERT(*(int*)avl.root->right->key == 5);
  gpr_avl_unref(avl, nullptr);
}

static void test_rr(void) {
  gpr_avl avl;
  gpr_log(GPR_DEBUG, "test_rr");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(3), box(1), nullptr);
  avl = gpr_avl_add(avl, box(4), box(2), nullptr);
  avl = gpr_avl_add(avl, box(5), box(3), nullptr);
  GPR_ASSERT(*(int*)avl.root->key == 4);
  GPR_ASSERT(*(int*)avl.root->left->key == 3);
  GPR_ASSERT(*(int*)avl.root->right->key == 5);
  gpr_avl_unref(avl, nullptr);
}

static void test_rl(void) {
  gpr_avl avl;
  gpr_log(GPR_DEBUG, "test_rl");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(3), box(1), nullptr);
  avl = gpr_avl_add(avl, box(5), box(2), nullptr);
  avl = gpr_avl_add(avl, box(4), box(3), nullptr);
  GPR_ASSERT(*(int*)avl.root->key == 4);
  GPR_ASSERT(*(int*)avl.root->left->key == 3);
  GPR_ASSERT(*(int*)avl.root->right->key == 5);
  gpr_avl_unref(avl, nullptr);
}

static void test_unbalanced(void) {
  gpr_avl avl;
  gpr_log(GPR_DEBUG, "test_unbalanced");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(5), box(1), nullptr);
  avl = gpr_avl_add(avl, box(4), box(2), nullptr);
  avl = gpr_avl_add(avl, box(3), box(3), nullptr);
  avl = gpr_avl_add(avl, box(2), box(4), nullptr);
  avl = gpr_avl_add(avl, box(1), box(5), nullptr);
  GPR_ASSERT(*(int*)avl.root->key == 4);
  GPR_ASSERT(*(int*)avl.root->left->key == 2);
  GPR_ASSERT(*(int*)avl.root->left->left->key == 1);
  GPR_ASSERT(*(int*)avl.root->left->right->key == 3);
  GPR_ASSERT(*(int*)avl.root->right->key == 5);
  gpr_avl_unref(avl, nullptr);
}

static void test_replace(void) {
  gpr_avl avl;
  gpr_log(GPR_DEBUG, "test_replace");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(1), box(1), nullptr);
  avl = gpr_avl_add(avl, box(1), box(2), nullptr);
  check_get(avl, 1, 2);
  check_negget(avl, 2);
  gpr_avl_unref(avl, nullptr);
}

static void test_remove(void) {
  gpr_avl avl;
  gpr_avl avl3, avl4, avl5, avln;
  gpr_log(GPR_DEBUG, "test_remove");
  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(3), box(1), nullptr);
  avl = gpr_avl_add(avl, box(4), box(2), nullptr);
  avl = gpr_avl_add(avl, box(5), box(3), nullptr);

  avl3 = remove_int(gpr_avl_ref(avl, nullptr), 3);
  avl4 = remove_int(gpr_avl_ref(avl, nullptr), 4);
  avl5 = remove_int(gpr_avl_ref(avl, nullptr), 5);
  avln = remove_int(gpr_avl_ref(avl, nullptr), 1);

  gpr_avl_unref(avl, nullptr);

  check_negget(avl3, 3);
  check_get(avl3, 4, 2);
  check_get(avl3, 5, 3);
  gpr_avl_unref(avl3, nullptr);

  check_get(avl4, 3, 1);
  check_negget(avl4, 4);
  check_get(avl4, 5, 3);
  gpr_avl_unref(avl4, nullptr);

  check_get(avl5, 3, 1);
  check_get(avl5, 4, 2);
  check_negget(avl5, 5);
  gpr_avl_unref(avl5, nullptr);

  check_get(avln, 3, 1);
  check_get(avln, 4, 2);
  check_get(avln, 5, 3);
  gpr_avl_unref(avln, nullptr);
}

static void test_badcase1(void) {
  gpr_avl avl;

  gpr_log(GPR_DEBUG, "test_badcase1");

  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(88), box(1), nullptr);
  avl = remove_int(avl, 643);
  avl = remove_int(avl, 983);
  avl = gpr_avl_add(avl, box(985), box(4), nullptr);
  avl = gpr_avl_add(avl, box(640), box(5), nullptr);
  avl = gpr_avl_add(avl, box(41), box(6), nullptr);
  avl = gpr_avl_add(avl, box(112), box(7), nullptr);
  avl = gpr_avl_add(avl, box(342), box(8), nullptr);
  avl = remove_int(avl, 1013);
  avl = gpr_avl_add(avl, box(434), box(10), nullptr);
  avl = gpr_avl_add(avl, box(520), box(11), nullptr);
  avl = gpr_avl_add(avl, box(231), box(12), nullptr);
  avl = gpr_avl_add(avl, box(852), box(13), nullptr);
  avl = remove_int(avl, 461);
  avl = gpr_avl_add(avl, box(108), box(15), nullptr);
  avl = gpr_avl_add(avl, box(806), box(16), nullptr);
  avl = gpr_avl_add(avl, box(827), box(17), nullptr);
  avl = remove_int(avl, 796);
  avl = gpr_avl_add(avl, box(340), box(19), nullptr);
  avl = gpr_avl_add(avl, box(498), box(20), nullptr);
  avl = gpr_avl_add(avl, box(203), box(21), nullptr);
  avl = gpr_avl_add(avl, box(751), box(22), nullptr);
  avl = gpr_avl_add(avl, box(150), box(23), nullptr);
  avl = remove_int(avl, 237);
  avl = gpr_avl_add(avl, box(830), box(25), nullptr);
  avl = remove_int(avl, 1007);
  avl = remove_int(avl, 394);
  avl = gpr_avl_add(avl, box(65), box(28), nullptr);
  avl = remove_int(avl, 904);
  avl = remove_int(avl, 123);
  avl = gpr_avl_add(avl, box(238), box(31), nullptr);
  avl = gpr_avl_add(avl, box(184), box(32), nullptr);
  avl = remove_int(avl, 331);
  avl = gpr_avl_add(avl, box(827), box(34), nullptr);

  check_get(avl, 830, 25);

  gpr_avl_unref(avl, nullptr);
}

static void test_badcase2(void) {
  gpr_avl avl;

  gpr_log(GPR_DEBUG, "test_badcase2");

  avl = gpr_avl_create(&int_int_vtable);
  avl = gpr_avl_add(avl, box(288), box(1), nullptr);
  avl = remove_int(avl, 415);
  avl = gpr_avl_add(avl, box(953), box(3), nullptr);
  avl = gpr_avl_add(avl, box(101), box(4), nullptr);
  avl = gpr_avl_add(avl, box(516), box(5), nullptr);
  avl = gpr_avl_add(avl, box(547), box(6), nullptr);
  avl = gpr_avl_add(avl, box(467), box(7), nullptr);
  avl = gpr_avl_add(avl, box(793), box(8), nullptr);
  avl = remove_int(avl, 190);
  avl = gpr_avl_add(avl, box(687), box(10), nullptr);
  avl = gpr_avl_add(avl, box(242), box(11), nullptr);
  avl = gpr_avl_add(avl, box(142), box(12), nullptr);
  avl = remove_int(avl, 705);
  avl = remove_int(avl, 578);
  avl = remove_int(avl, 767);
  avl = remove_int(avl, 183);
  avl = gpr_avl_add(avl, box(950), box(17), nullptr);
  avl = gpr_avl_add(avl, box(622), box(18), nullptr);
  avl = remove_int(avl, 513);
  avl = remove_int(avl, 429);
  avl = gpr_avl_add(avl, box(205), box(21), nullptr);
  avl = remove_int(avl, 663);
  avl = remove_int(avl, 953);
  avl = remove_int(avl, 892);
  avl = gpr_avl_add(avl, box(236), box(25), nullptr);
  avl = remove_int(avl, 982);
  avl = remove_int(avl, 201);
  avl = remove_int(avl, 684);
  avl = gpr_avl_add(avl, box(572), box(29), nullptr);
  avl = remove_int(avl, 817);
  avl = gpr_avl_add(avl, box(970), box(31), nullptr);
  avl = remove_int(avl, 347);
  avl = remove_int(avl, 574);
  avl = gpr_avl_add(avl, box(752), box(34), nullptr);
  avl = gpr_avl_add(avl, box(670), box(35), nullptr);
  avl = gpr_avl_add(avl, box(69), box(36), nullptr);
  avl = remove_int(avl, 111);
  avl = remove_int(avl, 523);
  avl = gpr_avl_add(avl, box(141), box(39), nullptr);
  avl = remove_int(avl, 159);
  avl = gpr_avl_add(avl, box(947), box(41), nullptr);
  avl = gpr_avl_add(avl, box(855), box(42), nullptr);
  avl = remove_int(avl, 218);
  avl = remove_int(avl, 6);
  avl = gpr_avl_add(avl, box(753), box(45), nullptr);
  avl = remove_int(avl, 82);
  avl = remove_int(avl, 799);
  avl = gpr_avl_add(avl, box(572), box(48), nullptr);
  avl = remove_int(avl, 376);
  avl = remove_int(avl, 413);
  avl = gpr_avl_add(avl, box(458), box(51), nullptr);
  avl = remove_int(avl, 897);
  avl = gpr_avl_add(avl, box(191), box(53), nullptr);
  avl = gpr_avl_add(avl, box(609), box(54), nullptr);
  avl = remove_int(avl, 787);
  avl = remove_int(avl, 710);
  avl = remove_int(avl, 886);
  avl = remove_int(avl, 835);
  avl = remove_int(avl, 33);
  avl = gpr_avl_add(avl, box(871), box(60), nullptr);
  avl = remove_int(avl, 641);
  avl = gpr_avl_add(avl, box(462), box(62), nullptr);
  avl = remove_int(avl, 359);
  avl = remove_int(avl, 767);
  avl = gpr_avl_add(avl, box(310), box(65), nullptr);
  avl = remove_int(avl, 757);
  avl = remove_int(avl, 639);
  avl = remove_int(avl, 314);
  avl = gpr_avl_add(avl, box(2), box(69), nullptr);
  avl = remove_int(avl, 138);
  avl = gpr_avl_add(avl, box(669), box(71), nullptr);
  avl = remove_int(avl, 477);
  avl = gpr_avl_add(avl, box(366), box(73), nullptr);
  avl = gpr_avl_add(avl, box(612), box(74), nullptr);
  avl = gpr_avl_add(avl, box(106), box(75), nullptr);
  avl = remove_int(avl, 161);
  avl = gpr_avl_add(avl, box(388), box(77), nullptr);
  avl = gpr_avl_add(avl, box(141), box(78), nullptr);
  avl = remove_int(avl, 633);
  avl = remove_int(avl, 459);
  avl = gpr_avl_add(avl, box(40), box(81), nullptr);
  avl = remove_int(avl, 689);
  avl = gpr_avl_add(avl, box(823), box(83), nullptr);
  avl = remove_int(avl, 485);
  avl = gpr_avl_add(avl, box(903), box(85), nullptr);
  avl = gpr_avl_add(avl, box(592), box(86), nullptr);
  avl = remove_int(avl, 448);
  avl = gpr_avl_add(avl, box(56), box(88), nullptr);
  avl = remove_int(avl, 333);
  avl = gpr_avl_add(avl, box(189), box(90), nullptr);
  avl = gpr_avl_add(avl, box(103), box(91), nullptr);
  avl = remove_int(avl, 164);
  avl = remove_int(avl, 974);
  avl = gpr_avl_add(avl, box(215), box(94), nullptr);
  avl = remove_int(avl, 189);
  avl = remove_int(avl, 504);
  avl = gpr_avl_add(avl, box(868), box(97), nullptr);
  avl = remove_int(avl, 909);
  avl = remove_int(avl, 148);
  avl = remove_int(avl, 469);
  avl = gpr_avl_add(avl, box(994), box(101), nullptr);
  avl = gpr_avl_add(avl, box(576), box(102), nullptr);
  avl = remove_int(avl, 82);
  avl = remove_int(avl, 209);
  avl = gpr_avl_add(avl, box(276), box(105), nullptr);
  avl = remove_int(avl, 856);
  avl = gpr_avl_add(avl, box(750), box(107), nullptr);
  avl = remove_int(avl, 871);
  avl = gpr_avl_add(avl, box(301), box(109), nullptr);
  avl = remove_int(avl, 260);
  avl = remove_int(avl, 737);
  avl = remove_int(avl, 719);
  avl = gpr_avl_add(avl, box(933), box(113), nullptr);
  avl = gpr_avl_add(avl, box(225), box(114), nullptr);
  avl = gpr_avl_add(avl, box(975), box(115), nullptr);
  avl = gpr_avl_add(avl, box(86), box(116), nullptr);
  avl = remove_int(avl, 732);
  avl = gpr_avl_add(avl, box(340), box(118), nullptr);
  avl = gpr_avl_add(avl, box(271), box(119), nullptr);
  avl = remove_int(avl, 206);
  avl = gpr_avl_add(avl, box(949), box(121), nullptr);
  avl = gpr_avl_add(avl, box(927), box(122), nullptr);
  avl = gpr_avl_add(avl, box(34), box(123), nullptr);
  avl = gpr_avl_add(avl, box(351), box(124), nullptr);
  avl = remove_int(avl, 836);
  avl = gpr_avl_add(avl, box(825), box(126), nullptr);
  avl = gpr_avl_add(avl, box(352), box(127), nullptr);
  avl = remove_int(avl, 107);
  avl = remove_int(avl, 101);
  avl = gpr_avl_add(avl, box(320), box(130), nullptr);
  avl = gpr_avl_add(avl, box(3), box(131), nullptr);
  avl = remove_int(avl, 998);
  avl = remove_int(avl, 44);
  avl = gpr_avl_add(avl, box(525), box(134), nullptr);
  avl = gpr_avl_add(avl, box(864), box(135), nullptr);
  avl = gpr_avl_add(avl, box(863), box(136), nullptr);
  avl = remove_int(avl, 770);
  avl = gpr_avl_add(avl, box(440), box(138), nullptr);
  avl = remove_int(avl, 516);
  avl = gpr_avl_add(avl, box(116), box(140), nullptr);
  avl = remove_int(avl, 380);
  avl = gpr_avl_add(avl, box(878), box(142), nullptr);
  avl = remove_int(avl, 439);
  avl = gpr_avl_add(avl, box(994), box(144), nullptr);
  avl = remove_int(avl, 294);
  avl = remove_int(avl, 593);
  avl = gpr_avl_add(avl, box(696), box(147), nullptr);
  avl = remove_int(avl, 8);
  avl = gpr_avl_add(avl, box(881), box(149), nullptr);
  avl = remove_int(avl, 32);
  avl = remove_int(avl, 242);
  avl = gpr_avl_add(avl, box(487), box(152), nullptr);
  avl = gpr_avl_add(avl, box(637), box(153), nullptr);
  avl = gpr_avl_add(avl, box(793), box(154), nullptr);
  avl = gpr_avl_add(avl, box(696), box(155), nullptr);
  avl = remove_int(avl, 458);
  avl = gpr_avl_add(avl, box(828), box(157), nullptr);
  avl = remove_int(avl, 784);
  avl = remove_int(avl, 274);
  avl = gpr_avl_add(avl, box(783), box(160), nullptr);
  avl = remove_int(avl, 21);
  avl = gpr_avl_add(avl, box(866), box(162), nullptr);
  avl = remove_int(avl, 919);
  avl = gpr_avl_add(avl, box(435), box(164), nullptr);
  avl = remove_int(avl, 385);
  avl = gpr_avl_add(avl, box(475), box(166), nullptr);
  avl = remove_int(avl, 339);
  avl = gpr_avl_add(avl, box(615), box(168), nullptr);
  avl = remove_int(avl, 866);
  avl = remove_int(avl, 82);
  avl = remove_int(avl, 271);
  avl = gpr_avl_add(avl, box(590), box(172), nullptr);
  avl = gpr_avl_add(avl, box(852), box(173), nullptr);
  avl = remove_int(avl, 318);
  avl = remove_int(avl, 82);
  avl = gpr_avl_add(avl, box(672), box(176), nullptr);
  avl = remove_int(avl, 430);
  avl = gpr_avl_add(avl, box(821), box(178), nullptr);
  avl = gpr_avl_add(avl, box(365), box(179), nullptr);
  avl = remove_int(avl, 78);
  avl = gpr_avl_add(avl, box(700), box(181), nullptr);
  avl = gpr_avl_add(avl, box(353), box(182), nullptr);
  avl = remove_int(avl, 492);
  avl = gpr_avl_add(avl, box(991), box(184), nullptr);
  avl = remove_int(avl, 330);
  avl = gpr_avl_add(avl, box(873), box(186), nullptr);
  avl = remove_int(avl, 589);
  avl = gpr_avl_add(avl, box(676), box(188), nullptr);
  avl = gpr_avl_add(avl, box(790), box(189), nullptr);
  avl = remove_int(avl, 521);
  avl = remove_int(avl, 47);
  avl = gpr_avl_add(avl, box(976), box(192), nullptr);
  avl = gpr_avl_add(avl, box(683), box(193), nullptr);
  avl = remove_int(avl, 803);
  avl = remove_int(avl, 1006);
  avl = gpr_avl_add(avl, box(775), box(196), nullptr);
  avl = gpr_avl_add(avl, box(411), box(197), nullptr);
  avl = gpr_avl_add(avl, box(697), box(198), nullptr);
  avl = remove_int(avl, 50);
  avl = gpr_avl_add(avl, box(213), box(200), nullptr);
  avl = remove_int(avl, 714);
  avl = gpr_avl_add(avl, box(981), box(202), nullptr);
  avl = gpr_avl_add(avl, box(502), box(203), nullptr);
  avl = gpr_avl_add(avl, box(697), box(204), nullptr);
  avl = gpr_avl_add(avl, box(603), box(205), nullptr);
  avl = gpr_avl_add(avl, box(117), box(206), nullptr);
  avl = remove_int(avl, 363);
  avl = gpr_avl_add(avl, box(104), box(208), nullptr);
  avl = remove_int(avl, 842);
  avl = gpr_avl_add(avl, box(48), box(210), nullptr);
  avl = remove_int(avl, 764);
  avl = gpr_avl_add(avl, box(482), box(212), nullptr);
  avl = gpr_avl_add(avl, box(928), box(213), nullptr);
  avl = gpr_avl_add(avl, box(30), box(214), nullptr);
  avl = gpr_avl_add(avl, box(820), box(215), nullptr);
  avl = gpr_avl_add(avl, box(334), box(216), nullptr);
  avl = remove_int(avl, 306);
  avl = gpr_avl_add(avl, box(789), box(218), nullptr);
  avl = remove_int(avl, 924);
  avl = gpr_avl_add(avl, box(53), box(220), nullptr);
  avl = remove_int(avl, 657);
  avl = gpr_avl_add(avl, box(130), box(222), nullptr);
  avl = gpr_avl_add(avl, box(239), box(223), nullptr);
  avl = remove_int(avl, 20);
  avl = gpr_avl_add(avl, box(117), box(225), nullptr);
  avl = remove_int(avl, 882);
  avl = remove_int(avl, 891);
  avl = gpr_avl_add(avl, box(9), box(228), nullptr);
  avl = gpr_avl_add(avl, box(496), box(229), nullptr);
  avl = gpr_avl_add(avl, box(750), box(230), nullptr);
  avl = gpr_avl_add(avl, box(283), box(231), nullptr);
  avl = gpr_avl_add(avl, box(802), box(232), nullptr);
  avl = remove_int(avl, 352);
  avl = gpr_avl_add(avl, box(374), box(234), nullptr);
  avl = gpr_avl_add(avl, box(6), box(235), nullptr);
  avl = gpr_avl_add(avl, box(756), box(236), nullptr);
  avl = gpr_avl_add(avl, box(597), box(237), nullptr);
  avl = gpr_avl_add(avl, box(661), box(238), nullptr);
  avl = remove_int(avl, 96);
  avl = gpr_avl_add(avl, box(894), box(240), nullptr);
  avl = remove_int(avl, 749);
  avl = gpr_avl_add(avl, box(71), box(242), nullptr);
  avl = remove_int(avl, 68);
  avl = gpr_avl_add(avl, box(388), box(244), nullptr);
  avl = remove_int(avl, 119);
  avl = remove_int(avl, 856);
  avl = gpr_avl_add(avl, box(176), box(247), nullptr);
  avl = gpr_avl_add(avl, box(993), box(248), nullptr);
  avl = remove_int(avl, 178);
  avl = remove_int(avl, 781);
  avl = remove_int(avl, 771);
  avl = remove_int(avl, 848);
  avl = remove_int(avl, 376);
  avl = remove_int(avl, 157);
  avl = remove_int(avl, 142);
  avl = remove_int(avl, 686);
  avl = gpr_avl_add(avl, box(779), box(257), nullptr);
  avl = gpr_avl_add(avl, box(484), box(258), nullptr);
  avl = remove_int(avl, 837);
  avl = gpr_avl_add(avl, box(388), box(260), nullptr);
  avl = remove_int(avl, 987);
  avl = gpr_avl_add(avl, box(336), box(262), nullptr);
  avl = remove_int(avl, 855);
  avl = gpr_avl_add(avl, box(668), box(264), nullptr);
  avl = remove_int(avl, 648);
  avl = gpr_avl_add(avl, box(193), box(266), nullptr);
  avl = remove_int(avl, 939);
  avl = gpr_avl_add(avl, box(740), box(268), nullptr);
  avl = gpr_avl_add(avl, box(503), box(269), nullptr);
  avl = gpr_avl_add(avl, box(765), box(270), nullptr);
  avl = remove_int(avl, 924);
  avl = remove_int(avl, 513);
  avl = gpr_avl_add(avl, box(161), box(273), nullptr);
  avl = gpr_avl_add(avl, box(502), box(274), nullptr);
  avl = gpr_avl_add(avl, box(846), box(275), nullptr);
  avl = remove_int(avl, 931);
  avl = gpr_avl_add(avl, box(87), box(277), nullptr);
  avl = gpr_avl_add(avl, box(949), box(278), nullptr);
  avl = gpr_avl_add(avl, box(548), box(279), nullptr);
  avl = gpr_avl_add(avl, box(951), box(280), nullptr);
  avl = remove_int(avl, 1018);
  avl = remove_int(avl, 568);
  avl = gpr_avl_add(avl, box(138), box(283), nullptr);
  avl = gpr_avl_add(avl, box(202), box(284), nullptr);
  avl = gpr_avl_add(avl, box(157), box(285), nullptr);
  avl = gpr_avl_add(avl, box(264), box(286), nullptr);
  avl = gpr_avl_add(avl, box(370), box(287), nullptr);
  avl = remove_int(avl, 736);
  avl = remove_int(avl, 751);
  avl = remove_int(avl, 506);
  avl = remove_int(avl, 81);
  avl = remove_int(avl, 358);
  avl = remove_int(avl, 657);
  avl = remove_int(avl, 86);
  avl = gpr_avl_add(avl, box(876), box(295), nullptr);
  avl = remove_int(avl, 354);
  avl = gpr_avl_add(avl, box(134), box(297), nullptr);
  avl = remove_int(avl, 781);
  avl = remove_int(avl, 183);
  avl = gpr_avl_add(avl, box(914), box(300), nullptr);
  avl = remove_int(avl, 926);
  avl = remove_int(avl, 398);
  avl = remove_int(avl, 932);
  avl = remove_int(avl, 804);
  avl = remove_int(avl, 326);
  avl = gpr_avl_add(avl, box(208), box(306), nullptr);
  avl = gpr_avl_add(avl, box(699), box(307), nullptr);
  avl = remove_int(avl, 576);
  avl = remove_int(avl, 850);
  avl = remove_int(avl, 514);
  avl = remove_int(avl, 676);
  avl = remove_int(avl, 549);
  avl = remove_int(avl, 767);
  avl = gpr_avl_add(avl, box(58), box(314), nullptr);
  avl = gpr_avl_add(avl, box(265), box(315), nullptr);
  avl = gpr_avl_add(avl, box(268), box(316), nullptr);
  avl = gpr_avl_add(avl, box(103), box(317), nullptr);
  avl = gpr_avl_add(avl, box(440), box(318), nullptr);
  avl = remove_int(avl, 777);
  avl = gpr_avl_add(avl, box(670), box(320), nullptr);
  avl = remove_int(avl, 506);
  avl = remove_int(avl, 487);
  avl = gpr_avl_add(avl, box(421), box(323), nullptr);
  avl = remove_int(avl, 514);
  avl = gpr_avl_add(avl, box(701), box(325), nullptr);
  avl = remove_int(avl, 949);
  avl = remove_int(avl, 872);
  avl = remove_int(avl, 139);
  avl = gpr_avl_add(avl, box(781), box(329), nullptr);
  avl = gpr_avl_add(avl, box(543), box(330), nullptr);
  avl = gpr_avl_add(avl, box(147), box(331), nullptr);
  avl = remove_int(avl, 190);
  avl = gpr_avl_add(avl, box(453), box(333), nullptr);
  avl = remove_int(avl, 262);
  avl = remove_int(avl, 850);
  avl = remove_int(avl, 286);
  avl = remove_int(avl, 787);
  avl = gpr_avl_add(avl, box(514), box(338), nullptr);
  avl = remove_int(avl, 812);
  avl = gpr_avl_add(avl, box(431), box(340), nullptr);
  avl = gpr_avl_add(avl, box(8), box(341), nullptr);
  avl = remove_int(avl, 843);
  avl = gpr_avl_add(avl, box(831), box(343), nullptr);
  avl = remove_int(avl, 472);
  avl = remove_int(avl, 157);
  avl = gpr_avl_add(avl, box(612), box(346), nullptr);
  avl = gpr_avl_add(avl, box(802), box(347), nullptr);
  avl = remove_int(avl, 554);
  avl = gpr_avl_add(avl, box(409), box(349), nullptr);
  avl = gpr_avl_add(avl, box(439), box(350), nullptr);
  avl = gpr_avl_add(avl, box(725), box(351), nullptr);
  avl = gpr_avl_add(avl, box(568), box(352), nullptr);
  avl = remove_int(avl, 475);
  avl = remove_int(avl, 672);
  avl = remove_int(avl, 62);
  avl = remove_int(avl, 753);
  avl = gpr_avl_add(avl, box(435), box(357), nullptr);
  avl = gpr_avl_add(avl, box(950), box(358), nullptr);
  avl = gpr_avl_add(avl, box(532), box(359), nullptr);
  avl = gpr_avl_add(avl, box(832), box(360), nullptr);
  avl = remove_int(avl, 390);
  avl = gpr_avl_add(avl, box(993), box(362), nullptr);
  avl = remove_int(avl, 198);
  avl = remove_int(avl, 401);
  avl = gpr_avl_add(avl, box(316), box(365), nullptr);
  avl = remove_int(avl, 843);
  avl = gpr_avl_add(avl, box(541), box(367), nullptr);
  avl = gpr_avl_add(avl, box(505), box(368), nullptr);
  avl = remove_int(avl, 445);
  avl = remove_int(avl, 256);
  avl = gpr_avl_add(avl, box(232), box(371), nullptr);
  avl = remove_int(avl, 577);
  avl = remove_int(avl, 558);
  avl = gpr_avl_add(avl, box(910), box(374), nullptr);
  avl = remove_int(avl, 902);
  avl = remove_int(avl, 755);
  avl = remove_int(avl, 114);
  avl = remove_int(avl, 438);
  avl = remove_int(avl, 224);
  avl = gpr_avl_add(avl, box(920), box(380), nullptr);
  avl = gpr_avl_add(avl, box(655), box(381), nullptr);
  avl = remove_int(avl, 557);
  avl = remove_int(avl, 102);
  avl = remove_int(avl, 165);
  avl = gpr_avl_add(avl, box(191), box(385), nullptr);
  avl = remove_int(avl, 30);
  avl = gpr_avl_add(avl, box(406), box(387), nullptr);
  avl = gpr_avl_add(avl, box(66), box(388), nullptr);
  avl = gpr_avl_add(avl, box(87), box(389), nullptr);
  avl = remove_int(avl, 7);
  avl = remove_int(avl, 671);
  avl = gpr_avl_add(avl, box(234), box(392), nullptr);
  avl = remove_int(avl, 463);
  avl = gpr_avl_add(avl, box(75), box(394), nullptr);
  avl = gpr_avl_add(avl, box(487), box(395), nullptr);
  avl = remove_int(avl, 203);
  avl = gpr_avl_add(avl, box(711), box(397), nullptr);
  avl = remove_int(avl, 291);
  avl = remove_int(avl, 798);
  avl = remove_int(avl, 337);
  avl = gpr_avl_add(avl, box(877), box(401), nullptr);
  avl = gpr_avl_add(avl, box(388), box(402), nullptr);
  avl = remove_int(avl, 975);
  avl = gpr_avl_add(avl, box(200), box(404), nullptr);
  avl = gpr_avl_add(avl, box(408), box(405), nullptr);
  avl = gpr_avl_add(avl, box(3), box(406), nullptr);
  avl = gpr_avl_add(avl, box(971), box(407), nullptr);
  avl = remove_int(avl, 841);
  avl = remove_int(avl, 910);
  avl = remove_int(avl, 74);
  avl = remove_int(avl, 888);
  avl = gpr_avl_add(avl, box(492), box(412), nullptr);
  avl = remove_int(avl, 14);
  avl = remove_int(avl, 364);
  avl = gpr_avl_add(avl, box(215), box(415), nullptr);
  avl = remove_int(avl, 778);
  avl = remove_int(avl, 45);
  avl = gpr_avl_add(avl, box(328), box(418), nullptr);
  avl = gpr_avl_add(avl, box(597), box(419), nullptr);
  avl = remove_int(avl, 34);
  avl = gpr_avl_add(avl, box(736), box(421), nullptr);
  avl = remove_int(avl, 37);
  avl = gpr_avl_add(avl, box(275), box(423), nullptr);
  avl = gpr_avl_add(avl, box(70), box(424), nullptr);
  avl = gpr_avl_add(avl, box(771), box(425), nullptr);
  avl = remove_int(avl, 536);
  avl = remove_int(avl, 421);
  avl = gpr_avl_add(avl, box(186), box(428), nullptr);
  avl = gpr_avl_add(avl, box(788), box(429), nullptr);
  avl = gpr_avl_add(avl, box(224), box(430), nullptr);
  avl = remove_int(avl, 228);
  avl = gpr_avl_add(avl, box(48), box(432), nullptr);
  avl = gpr_avl_add(avl, box(120), box(433), nullptr);
  avl = gpr_avl_add(avl, box(269), box(434), nullptr);
  avl = gpr_avl_add(avl, box(904), box(435), nullptr);
  avl = remove_int(avl, 699);
  avl = gpr_avl_add(avl, box(340), box(437), nullptr);
  avl = remove_int(avl, 276);
  avl = gpr_avl_add(avl, box(591), box(439), nullptr);
  avl = gpr_avl_add(avl, box(778), box(440), nullptr);
  avl = remove_int(avl, 490);
  avl = remove_int(avl, 973);
  avl = gpr_avl_add(avl, box(294), box(443), nullptr);
  avl = gpr_avl_add(avl, box(323), box(444), nullptr);
  avl = remove_int(avl, 685);
  avl = gpr_avl_add(avl, box(38), box(446), nullptr);
  avl = gpr_avl_add(avl, box(525), box(447), nullptr);
  avl = remove_int(avl, 162);
  avl = gpr_avl_add(avl, box(462), box(449), nullptr);
  avl = gpr_avl_add(avl, box(340), box(450), nullptr);
  avl = remove_int(avl, 734);
  avl = remove_int(avl, 959);
  avl = gpr_avl_add(avl, box(752), box(453), nullptr);
  avl = gpr_avl_add(avl, box(667), box(454), nullptr);
  avl = remove_int(avl, 558);
  avl = remove_int(avl, 657);
  avl = gpr_avl_add(avl, box(711), box(457), nullptr);
  avl = remove_int(avl, 937);
  avl = gpr_avl_add(avl, box(741), box(459), nullptr);
  avl = gpr_avl_add(avl, box(40), box(460), nullptr);
  avl = remove_int(avl, 784);
  avl = gpr_avl_add(avl, box(292), box(462), nullptr);
  avl = remove_int(avl, 164);
  avl = remove_int(avl, 931);
  avl = remove_int(avl, 886);
  avl = gpr_avl_add(avl, box(968), box(466), nullptr);
  avl = remove_int(avl, 263);
  avl = gpr_avl_add(avl, box(647), box(468), nullptr);
  avl = gpr_avl_add(avl, box(92), box(469), nullptr);
  avl = remove_int(avl, 310);
  avl = gpr_avl_add(avl, box(711), box(471), nullptr);
  avl = gpr_avl_add(avl, box(675), box(472), nullptr);
  avl = remove_int(avl, 549);
  avl = gpr_avl_add(avl, box(380), box(474), nullptr);
  avl = remove_int(avl, 825);
  avl = gpr_avl_add(avl, box(668), box(476), nullptr);
  avl = remove_int(avl, 498);
  avl = gpr_avl_add(avl, box(870), box(478), nullptr);
  avl = gpr_avl_add(avl, box(391), box(479), nullptr);
  avl = gpr_avl_add(avl, box(264), box(480), nullptr);
  avl = remove_int(avl, 1);
  avl = remove_int(avl, 849);
  avl = remove_int(avl, 88);
  avl = remove_int(avl, 255);
  avl = remove_int(avl, 763);
  avl = remove_int(avl, 831);
  avl = gpr_avl_add(avl, box(508), box(487), nullptr);
  avl = remove_int(avl, 849);
  avl = remove_int(avl, 47);
  avl = gpr_avl_add(avl, box(299), box(490), nullptr);
  avl = remove_int(avl, 625);
  avl = remove_int(avl, 433);
  avl = remove_int(avl, 904);
  avl = remove_int(avl, 761);
  avl = gpr_avl_add(avl, box(33), box(495), nullptr);
  avl = gpr_avl_add(avl, box(524), box(496), nullptr);
  avl = remove_int(avl, 210);
  avl = remove_int(avl, 299);
  avl = gpr_avl_add(avl, box(823), box(499), nullptr);
  avl = remove_int(avl, 479);
  avl = remove_int(avl, 96);
  avl = remove_int(avl, 1013);
  avl = gpr_avl_add(avl, box(768), box(503), nullptr);
  avl = remove_int(avl, 638);
  avl = remove_int(avl, 20);
  avl = gpr_avl_add(avl, box(663), box(506), nullptr);
  avl = remove_int(avl, 882);
  avl = gpr_avl_add(avl, box(745), box(508), nullptr);
  avl = remove_int(avl, 352);
  avl = gpr_avl_add(avl, box(10), box(510), nullptr);
  avl = remove_int(avl, 484);
  avl = gpr_avl_add(avl, box(420), box(512), nullptr);
  avl = gpr_avl_add(avl, box(884), box(513), nullptr);
  avl = gpr_avl_add(avl, box(993), box(514), nullptr);
  avl = gpr_avl_add(avl, box(251), box(515), nullptr);
  avl = remove_int(avl, 222);
  avl = gpr_avl_add(avl, box(734), box(517), nullptr);
  avl = gpr_avl_add(avl, box(952), box(518), nullptr);
  avl = remove_int(avl, 26);
  avl = remove_int(avl, 270);
  avl = remove_int(avl, 481);
  avl = remove_int(avl, 693);
  avl = remove_int(avl, 1006);
  avl = gpr_avl_add(avl, box(77), box(524), nullptr);
  avl = remove_int(avl, 897);
  avl = gpr_avl_add(avl, box(719), box(526), nullptr);
  avl = gpr_avl_add(avl, box(622), box(527), nullptr);
  avl = remove_int(avl, 28);
  avl = remove_int(avl, 836);
  avl = remove_int(avl, 142);
  avl = gpr_avl_add(avl, box(445), box(531), nullptr);
  avl = gpr_avl_add(avl, box(410), box(532), nullptr);
  avl = remove_int(avl, 575);
  avl = gpr_avl_add(avl, box(634), box(534), nullptr);
  avl = gpr_avl_add(avl, box(906), box(535), nullptr);
  avl = remove_int(avl, 649);
  avl = gpr_avl_add(avl, box(813), box(537), nullptr);
  avl = remove_int(avl, 702);
  avl = remove_int(avl, 732);
  avl = gpr_avl_add(avl, box(105), box(540), nullptr);
  avl = gpr_avl_add(avl, box(867), box(541), nullptr);
  avl = remove_int(avl, 964);
  avl = remove_int(avl, 941);
  avl = gpr_avl_add(avl, box(947), box(544), nullptr);
  avl = remove_int(avl, 990);
  avl = gpr_avl_add(avl, box(816), box(546), nullptr);
  avl = remove_int(avl, 429);
  avl = remove_int(avl, 567);
  avl = remove_int(avl, 541);
  avl = remove_int(avl, 583);
  avl = gpr_avl_add(avl, box(57), box(551), nullptr);
  avl = gpr_avl_add(avl, box(786), box(552), nullptr);
  avl = gpr_avl_add(avl, box(526), box(553), nullptr);
  avl = remove_int(avl, 642);
  avl = remove_int(avl, 220);
  avl = remove_int(avl, 840);
  avl = remove_int(avl, 548);
  avl = gpr_avl_add(avl, box(528), box(558), nullptr);
  avl = gpr_avl_add(avl, box(749), box(559), nullptr);
  avl = gpr_avl_add(avl, box(194), box(560), nullptr);
  avl = remove_int(avl, 517);
  avl = gpr_avl_add(avl, box(102), box(562), nullptr);
  avl = remove_int(avl, 189);
  avl = gpr_avl_add(avl, box(927), box(564), nullptr);
  avl = remove_int(avl, 846);
  avl = remove_int(avl, 130);
  avl = gpr_avl_add(avl, box(694), box(567), nullptr);
  avl = remove_int(avl, 750);
  avl = gpr_avl_add(avl, box(357), box(569), nullptr);
  avl = remove_int(avl, 431);
  avl = remove_int(avl, 91);
  avl = gpr_avl_add(avl, box(640), box(572), nullptr);
  avl = remove_int(avl, 4);
  avl = gpr_avl_add(avl, box(81), box(574), nullptr);
  avl = gpr_avl_add(avl, box(595), box(575), nullptr);
  avl = remove_int(avl, 444);
  avl = remove_int(avl, 262);
  avl = remove_int(avl, 11);
  avl = gpr_avl_add(avl, box(192), box(579), nullptr);
  avl = gpr_avl_add(avl, box(158), box(580), nullptr);
  avl = remove_int(avl, 401);
  avl = remove_int(avl, 918);
  avl = gpr_avl_add(avl, box(180), box(583), nullptr);
  avl = remove_int(avl, 268);
  avl = gpr_avl_add(avl, box(1012), box(585), nullptr);
  avl = gpr_avl_add(avl, box(90), box(586), nullptr);
  avl = gpr_avl_add(avl, box(946), box(587), nullptr);
  avl = remove_int(avl, 719);
  avl = gpr_avl_add(avl, box(874), box(589), nullptr);
  avl = gpr_avl_add(avl, box(679), box(590), nullptr);
  avl = remove_int(avl, 53);
  avl = remove_int(avl, 534);
  avl = gpr_avl_add(avl, box(646), box(593), nullptr);
  avl = gpr_avl_add(avl, box(767), box(594), nullptr);
  avl = gpr_avl_add(avl, box(460), box(595), nullptr);
  avl = gpr_avl_add(avl, box(852), box(596), nullptr);
  avl = gpr_avl_add(avl, box(189), box(597), nullptr);
  avl = remove_int(avl, 932);
  avl = remove_int(avl, 366);
  avl = remove_int(avl, 907);
  avl = gpr_avl_add(avl, box(875), box(601), nullptr);
  avl = gpr_avl_add(avl, box(434), box(602), nullptr);
  avl = gpr_avl_add(avl, box(704), box(603), nullptr);
  avl = gpr_avl_add(avl, box(724), box(604), nullptr);
  avl = gpr_avl_add(avl, box(930), box(605), nullptr);
  avl = gpr_avl_add(avl, box(1000), box(606), nullptr);
  avl = remove_int(avl, 479);
  avl = gpr_avl_add(avl, box(275), box(608), nullptr);
  avl = remove_int(avl, 32);
  avl = gpr_avl_add(avl, box(939), box(610), nullptr);
  avl = remove_int(avl, 943);
  avl = remove_int(avl, 329);
  avl = gpr_avl_add(avl, box(490), box(613), nullptr);
  avl = remove_int(avl, 477);
  avl = remove_int(avl, 414);
  avl = remove_int(avl, 187);
  avl = remove_int(avl, 334);
  avl = gpr_avl_add(avl, box(40), box(618), nullptr);
  avl = remove_int(avl, 751);
  avl = gpr_avl_add(avl, box(568), box(620), nullptr);
  avl = gpr_avl_add(avl, box(120), box(621), nullptr);
  avl = gpr_avl_add(avl, box(617), box(622), nullptr);
  avl = gpr_avl_add(avl, box(32), box(623), nullptr);
  avl = remove_int(avl, 701);
  avl = gpr_avl_add(avl, box(910), box(625), nullptr);
  avl = remove_int(avl, 557);
  avl = remove_int(avl, 361);
  avl = remove_int(avl, 937);
  avl = remove_int(avl, 100);
  avl = remove_int(avl, 684);
  avl = gpr_avl_add(avl, box(751), box(631), nullptr);
  avl = remove_int(avl, 781);
  avl = remove_int(avl, 469);
  avl = remove_int(avl, 75);
  avl = remove_int(avl, 561);
  avl = gpr_avl_add(avl, box(854), box(636), nullptr);
  avl = remove_int(avl, 164);
  avl = remove_int(avl, 258);
  avl = remove_int(avl, 315);
  avl = remove_int(avl, 261);
  avl = gpr_avl_add(avl, box(552), box(641), nullptr);
  avl = gpr_avl_add(avl, box(6), box(642), nullptr);
  avl = gpr_avl_add(avl, box(680), box(643), nullptr);
  avl = remove_int(avl, 741);
  avl = remove_int(avl, 309);
  avl = remove_int(avl, 272);
  avl = gpr_avl_add(avl, box(249), box(647), nullptr);
  avl = remove_int(avl, 97);
  avl = remove_int(avl, 850);
  avl = gpr_avl_add(avl, box(915), box(650), nullptr);
  avl = gpr_avl_add(avl, box(816), box(651), nullptr);
  avl = gpr_avl_add(avl, box(45), box(652), nullptr);
  avl = gpr_avl_add(avl, box(168), box(653), nullptr);
  avl = remove_int(avl, 153);
  avl = remove_int(avl, 239);
  avl = gpr_avl_add(avl, box(684), box(656), nullptr);
  avl = gpr_avl_add(avl, box(208), box(657), nullptr);
  avl = gpr_avl_add(avl, box(681), box(658), nullptr);
  avl = gpr_avl_add(avl, box(609), box(659), nullptr);
  avl = gpr_avl_add(avl, box(645), box(660), nullptr);
  avl = remove_int(avl, 799);
  avl = gpr_avl_add(avl, box(955), box(662), nullptr);
  avl = gpr_avl_add(avl, box(946), box(663), nullptr);
  avl = gpr_avl_add(avl, box(744), box(664), nullptr);
  avl = gpr_avl_add(avl, box(201), box(665), nullptr);
  avl = gpr_avl_add(avl, box(136), box(666), nullptr);
  avl = remove_int(avl, 357);
  avl = gpr_avl_add(avl, box(974), box(668), nullptr);
  avl = remove_int(avl, 485);
  avl = gpr_avl_add(avl, box(1009), box(670), nullptr);
  avl = gpr_avl_add(avl, box(517), box(671), nullptr);
  avl = remove_int(avl, 491);
  avl = gpr_avl_add(avl, box(336), box(673), nullptr);
  avl = gpr_avl_add(avl, box(589), box(674), nullptr);
  avl = remove_int(avl, 546);
  avl = remove_int(avl, 840);
  avl = remove_int(avl, 104);
  avl = remove_int(avl, 347);
  avl = gpr_avl_add(avl, box(801), box(679), nullptr);
  avl = remove_int(avl, 799);
  avl = remove_int(avl, 702);
  avl = remove_int(avl, 996);
  avl = remove_int(avl, 93);
  avl = gpr_avl_add(avl, box(561), box(684), nullptr);
  avl = gpr_avl_add(avl, box(25), box(685), nullptr);
  avl = remove_int(avl, 278);
  avl = gpr_avl_add(avl, box(191), box(687), nullptr);
  avl = remove_int(avl, 243);
  avl = remove_int(avl, 918);
  avl = remove_int(avl, 449);
  avl = gpr_avl_add(avl, box(19), box(691), nullptr);
  avl = gpr_avl_add(avl, box(762), box(692), nullptr);
  avl = gpr_avl_add(avl, box(13), box(693), nullptr);
  avl = gpr_avl_add(avl, box(151), box(694), nullptr);
  avl = gpr_avl_add(avl, box(152), box(695), nullptr);
  avl = gpr_avl_add(avl, box(793), box(696), nullptr);
  avl = remove_int(avl, 862);
  avl = remove_int(avl, 890);
  avl = gpr_avl_add(avl, box(687), box(699), nullptr);
  avl = gpr_avl_add(avl, box(509), box(700), nullptr);
  avl = gpr_avl_add(avl, box(973), box(701), nullptr);
  avl = remove_int(avl, 230);
  avl = gpr_avl_add(avl, box(532), box(703), nullptr);
  avl = remove_int(avl, 668);
  avl = gpr_avl_add(avl, box(281), box(705), nullptr);
  avl = gpr_avl_add(avl, box(867), box(706), nullptr);
  avl = gpr_avl_add(avl, box(359), box(707), nullptr);
  avl = remove_int(avl, 425);
  avl = gpr_avl_add(avl, box(691), box(709), nullptr);
  avl = gpr_avl_add(avl, box(163), box(710), nullptr);
  avl = gpr_avl_add(avl, box(502), box(711), nullptr);
  avl = remove_int(avl, 674);
  avl = gpr_avl_add(avl, box(697), box(713), nullptr);
  avl = remove_int(avl, 271);
  avl = gpr_avl_add(avl, box(968), box(715), nullptr);
  avl = gpr_avl_add(avl, box(48), box(716), nullptr);
  avl = remove_int(avl, 543);
  avl = gpr_avl_add(avl, box(35), box(718), nullptr);
  avl = gpr_avl_add(avl, box(751), box(719), nullptr);
  avl = gpr_avl_add(avl, box(478), box(720), nullptr);
  avl = remove_int(avl, 797);
  avl = remove_int(avl, 309);
  avl = gpr_avl_add(avl, box(927), box(723), nullptr);
  avl = remove_int(avl, 504);
  avl = gpr_avl_add(avl, box(286), box(725), nullptr);
  avl = gpr_avl_add(avl, box(413), box(726), nullptr);
  avl = gpr_avl_add(avl, box(599), box(727), nullptr);
  avl = remove_int(avl, 105);
  avl = remove_int(avl, 605);
  avl = gpr_avl_add(avl, box(632), box(730), nullptr);
  avl = gpr_avl_add(avl, box(133), box(731), nullptr);
  avl = remove_int(avl, 443);
  avl = gpr_avl_add(avl, box(958), box(733), nullptr);
  avl = gpr_avl_add(avl, box(729), box(734), nullptr);
  avl = remove_int(avl, 158);
  avl = gpr_avl_add(avl, box(694), box(736), nullptr);
  avl = gpr_avl_add(avl, box(505), box(737), nullptr);
  avl = remove_int(avl, 63);
  avl = remove_int(avl, 714);
  avl = gpr_avl_add(avl, box(1002), box(740), nullptr);
  avl = remove_int(avl, 211);
  avl = gpr_avl_add(avl, box(765), box(742), nullptr);
  avl = gpr_avl_add(avl, box(455), box(743), nullptr);
  avl = remove_int(avl, 59);
  avl = remove_int(avl, 224);
  avl = gpr_avl_add(avl, box(586), box(746), nullptr);
  avl = gpr_avl_add(avl, box(348), box(747), nullptr);
  avl = remove_int(avl, 10);
  avl = remove_int(avl, 484);
  avl = gpr_avl_add(avl, box(968), box(750), nullptr);
  avl = gpr_avl_add(avl, box(923), box(751), nullptr);
  avl = remove_int(avl, 573);
  avl = remove_int(avl, 617);
  avl = gpr_avl_add(avl, box(812), box(754), nullptr);
  avl = gpr_avl_add(avl, box(179), box(755), nullptr);
  avl = remove_int(avl, 284);
  avl = remove_int(avl, 157);
  avl = remove_int(avl, 177);
  avl = remove_int(avl, 896);
  avl = gpr_avl_add(avl, box(649), box(760), nullptr);
  avl = gpr_avl_add(avl, box(927), box(761), nullptr);
  avl = gpr_avl_add(avl, box(454), box(762), nullptr);
  avl = gpr_avl_add(avl, box(217), box(763), nullptr);
  avl = remove_int(avl, 534);
  avl = gpr_avl_add(avl, box(180), box(765), nullptr);
  avl = gpr_avl_add(avl, box(319), box(766), nullptr);
  avl = remove_int(avl, 92);
  avl = gpr_avl_add(avl, box(483), box(768), nullptr);
  avl = remove_int(avl, 504);
  avl = remove_int(avl, 1017);
  avl = remove_int(avl, 37);
  avl = remove_int(avl, 50);
  avl = gpr_avl_add(avl, box(302), box(773), nullptr);
  avl = remove_int(avl, 807);
  avl = gpr_avl_add(avl, box(463), box(775), nullptr);
  avl = gpr_avl_add(avl, box(271), box(776), nullptr);
  avl = gpr_avl_add(avl, box(644), box(777), nullptr);
  avl = remove_int(avl, 618);
  avl = gpr_avl_add(avl, box(166), box(779), nullptr);
  avl = gpr_avl_add(avl, box(538), box(780), nullptr);
  avl = remove_int(avl, 606);
  avl = gpr_avl_add(avl, box(425), box(782), nullptr);
  avl = remove_int(avl, 725);
  avl = remove_int(avl, 383);
  avl = gpr_avl_add(avl, box(155), box(785), nullptr);
  avl = remove_int(avl, 889);
  avl = gpr_avl_add(avl, box(653), box(787), nullptr);
  avl = remove_int(avl, 386);
  avl = gpr_avl_add(avl, box(142), box(789), nullptr);
  avl = remove_int(avl, 107);
  avl = remove_int(avl, 603);
  avl = remove_int(avl, 971);
  avl = gpr_avl_add(avl, box(80), box(793), nullptr);
  avl = gpr_avl_add(avl, box(61), box(794), nullptr);
  avl = gpr_avl_add(avl, box(693), box(795), nullptr);
  avl = gpr_avl_add(avl, box(592), box(796), nullptr);
  avl = gpr_avl_add(avl, box(433), box(797), nullptr);
  avl = gpr_avl_add(avl, box(973), box(798), nullptr);
  avl = remove_int(avl, 901);
  avl = remove_int(avl, 340);
  avl = remove_int(avl, 709);
  avl = gpr_avl_add(avl, box(224), box(802), nullptr);
  avl = remove_int(avl, 120);
  avl = remove_int(avl, 271);
  avl = gpr_avl_add(avl, box(780), box(805), nullptr);
  avl = gpr_avl_add(avl, box(867), box(806), nullptr);
  avl = gpr_avl_add(avl, box(756), box(807), nullptr);
  avl = gpr_avl_add(avl, box(583), box(808), nullptr);
  avl = gpr_avl_add(avl, box(356), box(809), nullptr);
  avl = gpr_avl_add(avl, box(58), box(810), nullptr);
  avl = remove_int(avl, 219);
  avl = gpr_avl_add(avl, box(301), box(812), nullptr);
  avl = remove_int(avl, 643);
  avl = remove_int(avl, 787);
  avl = remove_int(avl, 583);
  avl = remove_int(avl, 552);
  avl = remove_int(avl, 308);
  avl = remove_int(avl, 608);
  avl = remove_int(avl, 363);
  avl = remove_int(avl, 690);
  avl = gpr_avl_add(avl, box(233), box(821), nullptr);
  avl = gpr_avl_add(avl, box(479), box(822), nullptr);
  avl = gpr_avl_add(avl, box(323), box(823), nullptr);
  avl = gpr_avl_add(avl, box(802), box(824), nullptr);
  avl = remove_int(avl, 682);
  avl = remove_int(avl, 705);
  avl = remove_int(avl, 487);
  avl = gpr_avl_add(avl, box(530), box(828), nullptr);
  avl = gpr_avl_add(avl, box(232), box(829), nullptr);
  avl = remove_int(avl, 627);
  avl = gpr_avl_add(avl, box(396), box(831), nullptr);
  avl = gpr_avl_add(avl, box(61), box(832), nullptr);
  avl = gpr_avl_add(avl, box(932), box(833), nullptr);
  avl = gpr_avl_add(avl, box(108), box(834), nullptr);
  avl = gpr_avl_add(avl, box(524), box(835), nullptr);
  avl = remove_int(avl, 390);
  avl = remove_int(avl, 307);
  avl = gpr_avl_add(avl, box(722), box(838), nullptr);
  avl = gpr_avl_add(avl, box(907), box(839), nullptr);
  avl = remove_int(avl, 286);
  avl = remove_int(avl, 337);
  avl = remove_int(avl, 443);
  avl = gpr_avl_add(avl, box(973), box(843), nullptr);
  avl = remove_int(avl, 930);
  avl = remove_int(avl, 242);
  avl = gpr_avl_add(avl, box(997), box(846), nullptr);
  avl = gpr_avl_add(avl, box(689), box(847), nullptr);
  avl = remove_int(avl, 318);
  avl = gpr_avl_add(avl, box(703), box(849), nullptr);
  avl = gpr_avl_add(avl, box(868), box(850), nullptr);
  avl = gpr_avl_add(avl, box(200), box(851), nullptr);
  avl = gpr_avl_add(avl, box(960), box(852), nullptr);
  avl = gpr_avl_add(avl, box(80), box(853), nullptr);
  avl = remove_int(avl, 113);
  avl = gpr_avl_add(avl, box(135), box(855), nullptr);
  avl = remove_int(avl, 529);
  avl = gpr_avl_add(avl, box(366), box(857), nullptr);
  avl = remove_int(avl, 272);
  avl = gpr_avl_add(avl, box(921), box(859), nullptr);
  avl = remove_int(avl, 497);
  avl = gpr_avl_add(avl, box(712), box(861), nullptr);
  avl = remove_int(avl, 777);
  avl = remove_int(avl, 505);
  avl = remove_int(avl, 974);
  avl = remove_int(avl, 497);
  avl = gpr_avl_add(avl, box(388), box(866), nullptr);
  avl = gpr_avl_add(avl, box(29), box(867), nullptr);
  avl = gpr_avl_add(avl, box(180), box(868), nullptr);
  avl = gpr_avl_add(avl, box(983), box(869), nullptr);
  avl = gpr_avl_add(avl, box(72), box(870), nullptr);
  avl = gpr_avl_add(avl, box(693), box(871), nullptr);
  avl = gpr_avl_add(avl, box(567), box(872), nullptr);
  avl = remove_int(avl, 549);
  avl = remove_int(avl, 351);
  avl = gpr_avl_add(avl, box(1019), box(875), nullptr);
  avl = remove_int(avl, 585);
  avl = remove_int(avl, 294);
  avl = remove_int(avl, 61);
  avl = gpr_avl_add(avl, box(409), box(879), nullptr);
  avl = gpr_avl_add(avl, box(984), box(880), nullptr);
  avl = gpr_avl_add(avl, box(830), box(881), nullptr);
  avl = remove_int(avl, 579);
  avl = gpr_avl_add(avl, box(672), box(883), nullptr);
  avl = remove_int(avl, 968);

  gpr_avl_unref(avl, nullptr);
}

static void test_badcase3(void) {
  gpr_avl avl;

  gpr_log(GPR_DEBUG, "test_badcase3");

  avl = gpr_avl_create(&int_int_vtable);
  avl = remove_int(avl, 624);
  avl = gpr_avl_add(avl, box(59), box(2), nullptr);
  avl = gpr_avl_add(avl, box(494), box(3), nullptr);
  avl = gpr_avl_add(avl, box(226), box(4), nullptr);
  avl = remove_int(avl, 524);
  avl = gpr_avl_add(avl, box(540), box(6), nullptr);
  avl = remove_int(avl, 1008);
  avl = gpr_avl_add(avl, box(502), box(8), nullptr);
  avl = remove_int(avl, 267);
  avl = remove_int(avl, 764);
  avl = remove_int(avl, 443);
  avl = gpr_avl_add(avl, box(8), box(12), nullptr);
  avl = remove_int(avl, 291);
  avl = remove_int(avl, 796);
  avl = remove_int(avl, 1002);
  avl = gpr_avl_add(avl, box(778), box(16), nullptr);
  avl = remove_int(avl, 621);
  avl = remove_int(avl, 891);
  avl = remove_int(avl, 880);
  avl = gpr_avl_add(avl, box(197), box(20), nullptr);
  avl = gpr_avl_add(avl, box(441), box(21), nullptr);
  avl = gpr_avl_add(avl, box(719), box(22), nullptr);
  avl = remove_int(avl, 109);
  avl = gpr_avl_add(avl, box(458), box(24), nullptr);
  avl = remove_int(avl, 86);
  avl = gpr_avl_add(avl, box(897), box(26), nullptr);
  avl = gpr_avl_add(avl, box(997), box(27), nullptr);
  avl = remove_int(avl, 235);
  avl = remove_int(avl, 425);
  avl = remove_int(avl, 186);
  avl = gpr_avl_add(avl, box(887), box(31), nullptr);
  avl = gpr_avl_add(avl, box(1005), box(32), nullptr);
  avl = gpr_avl_add(avl, box(778), box(33), nullptr);
  avl = gpr_avl_add(avl, box(575), box(34), nullptr);
  avl = remove_int(avl, 966);
  avl = remove_int(avl, 1015);
  avl = gpr_avl_add(avl, box(486), box(37), nullptr);
  avl = gpr_avl_add(avl, box(809), box(38), nullptr);
  avl = gpr_avl_add(avl, box(907), box(39), nullptr);
  avl = gpr_avl_add(avl, box(971), box(40), nullptr);
  avl = remove_int(avl, 441);
  avl = remove_int(avl, 498);
  avl = gpr_avl_add(avl, box(727), box(43), nullptr);
  avl = remove_int(avl, 679);
  avl = remove_int(avl, 740);
  avl = remove_int(avl, 532);
  avl = gpr_avl_add(avl, box(805), box(47), nullptr);
  avl = remove_int(avl, 64);
  avl = gpr_avl_add(avl, box(362), box(49), nullptr);
  avl = gpr_avl_add(avl, box(170), box(50), nullptr);
  avl = gpr_avl_add(avl, box(389), box(51), nullptr);
  avl = gpr_avl_add(avl, box(689), box(52), nullptr);
  avl = remove_int(avl, 871);
  avl = gpr_avl_add(avl, box(447), box(54), nullptr);
  avl = remove_int(avl, 718);
  avl = gpr_avl_add(avl, box(724), box(56), nullptr);
  avl = remove_int(avl, 215);
  avl = gpr_avl_add(avl, box(550), box(58), nullptr);
  avl = remove_int(avl, 932);
  avl = gpr_avl_add(avl, box(47), box(60), nullptr);
  avl = remove_int(avl, 46);
  avl = remove_int(avl, 229);
  avl = gpr_avl_add(avl, box(68), box(63), nullptr);
  avl = gpr_avl_add(avl, box(387), box(64), nullptr);
  avl = remove_int(avl, 933);
  avl = remove_int(avl, 736);
  avl = remove_int(avl, 719);
  avl = gpr_avl_add(avl, box(150), box(68), nullptr);
  avl = remove_int(avl, 875);
  avl = remove_int(avl, 298);
  avl = gpr_avl_add(avl, box(991), box(71), nullptr);
  avl = remove_int(avl, 705);
  avl = gpr_avl_add(avl, box(197), box(73), nullptr);
  avl = gpr_avl_add(avl, box(101), box(74), nullptr);
  avl = remove_int(avl, 436);
  avl = gpr_avl_add(avl, box(755), box(76), nullptr);
  avl = gpr_avl_add(avl, box(727), box(77), nullptr);
  avl = remove_int(avl, 309);
  avl = remove_int(avl, 253);
  avl = gpr_avl_add(avl, box(203), box(80), nullptr);
  avl = remove_int(avl, 231);
  avl = gpr_avl_add(avl, box(461), box(82), nullptr);
  avl = remove_int(avl, 316);
  avl = remove_int(avl, 493);
  avl = gpr_avl_add(avl, box(184), box(85), nullptr);
  avl = remove_int(avl, 737);
  avl = gpr_avl_add(avl, box(790), box(87), nullptr);
  avl = gpr_avl_add(avl, box(335), box(88), nullptr);
  avl = remove_int(avl, 649);
  avl = gpr_avl_add(avl, box(69), box(90), nullptr);
  avl = remove_int(avl, 585);
  avl = remove_int(avl, 543);
  avl = gpr_avl_add(avl, box(784), box(93), nullptr);
  avl = gpr_avl_add(avl, box(60), box(94), nullptr);
  avl = gpr_avl_add(avl, box(525), box(95), nullptr);
  avl = gpr_avl_add(avl, box(177), box(96), nullptr);
  avl = gpr_avl_add(avl, box(178), box(97), nullptr);
  avl = gpr_avl_add(avl, box(683), box(98), nullptr);
  avl = gpr_avl_add(avl, box(226), box(99), nullptr);
  avl = gpr_avl_add(avl, box(662), box(100), nullptr);
  avl = remove_int(avl, 944);
  avl = gpr_avl_add(avl, box(562), box(102), nullptr);
  avl = gpr_avl_add(avl, box(793), box(103), nullptr);
  avl = remove_int(avl, 673);
  avl = gpr_avl_add(avl, box(310), box(105), nullptr);
  avl = remove_int(avl, 479);
  avl = remove_int(avl, 543);
  avl = remove_int(avl, 159);
  avl = remove_int(avl, 850);
  avl = gpr_avl_add(avl, box(318), box(110), nullptr);
  avl = gpr_avl_add(avl, box(483), box(111), nullptr);
  avl = gpr_avl_add(avl, box(84), box(112), nullptr);
  avl = remove_int(avl, 109);
  avl = gpr_avl_add(avl, box(132), box(114), nullptr);
  avl = gpr_avl_add(avl, box(920), box(115), nullptr);
  avl = remove_int(avl, 746);
  avl = gpr_avl_add(avl, box(145), box(117), nullptr);
  avl = gpr_avl_add(avl, box(526), box(118), nullptr);
  avl = remove_int(avl, 158);
  avl = gpr_avl_add(avl, box(332), box(120), nullptr);
  avl = gpr_avl_add(avl, box(918), box(121), nullptr);
  avl = remove_int(avl, 339);
  avl = gpr_avl_add(avl, box(809), box(123), nullptr);
  avl = gpr_avl_add(avl, box(742), box(124), nullptr);
  avl = gpr_avl_add(avl, box(718), box(125), nullptr);
  avl = remove_int(avl, 988);
  avl = remove_int(avl, 531);
  avl = remove_int(avl, 840);
  avl = gpr_avl_add(avl, box(816), box(129), nullptr);
  avl = gpr_avl_add(avl, box(976), box(130), nullptr);
  avl = remove_int(avl, 743);
  avl = remove_int(avl, 528);
  avl = remove_int(avl, 982);
  avl = gpr_avl_add(avl, box(803), box(134), nullptr);
  avl = gpr_avl_add(avl, box(205), box(135), nullptr);
  avl = gpr_avl_add(avl, box(584), box(136), nullptr);
  avl = remove_int(avl, 923);
  avl = remove_int(avl, 538);
  avl = remove_int(avl, 398);
  avl = remove_int(avl, 320);
  avl = remove_int(avl, 292);
  avl = gpr_avl_add(avl, box(270), box(142), nullptr);
  avl = gpr_avl_add(avl, box(333), box(143), nullptr);
  avl = remove_int(avl, 439);
  avl = gpr_avl_add(avl, box(35), box(145), nullptr);
  avl = gpr_avl_add(avl, box(837), box(146), nullptr);
  avl = remove_int(avl, 65);
  avl = remove_int(avl, 642);
  avl = remove_int(avl, 371);
  avl = remove_int(avl, 140);
  avl = remove_int(avl, 533);
  avl = remove_int(avl, 676);
  avl = gpr_avl_add(avl, box(624), box(153), nullptr);
  avl = gpr_avl_add(avl, box(116), box(154), nullptr);
  avl = gpr_avl_add(avl, box(446), box(155), nullptr);
  avl = remove_int(avl, 91);
  avl = remove_int(avl, 721);
  avl = remove_int(avl, 537);
  avl = gpr_avl_add(avl, box(448), box(159), nullptr);
  avl = remove_int(avl, 155);
  avl = remove_int(avl, 344);
  avl = remove_int(avl, 237);
  avl = gpr_avl_add(avl, box(309), box(163), nullptr);
  avl = gpr_avl_add(avl, box(434), box(164), nullptr);
  avl = gpr_avl_add(avl, box(277), box(165), nullptr);
  avl = remove_int(avl, 233);
  avl = gpr_avl_add(avl, box(275), box(167), nullptr);
  avl = gpr_avl_add(avl, box(218), box(168), nullptr);
  avl = gpr_avl_add(avl, box(76), box(169), nullptr);
  avl = gpr_avl_add(avl, box(898), box(170), nullptr);
  avl = remove_int(avl, 771);
  avl = gpr_avl_add(avl, box(237), box(172), nullptr);
  avl = remove_int(avl, 327);
  avl = gpr_avl_add(avl, box(499), box(174), nullptr);
  avl = remove_int(avl, 727);
  avl = remove_int(avl, 234);
  avl = remove_int(avl, 623);
  avl = remove_int(avl, 458);
  avl = remove_int(avl, 326);
  avl = remove_int(avl, 589);
  avl = gpr_avl_add(avl, box(442), box(181), nullptr);
  avl = remove_int(avl, 389);
  avl = gpr_avl_add(avl, box(708), box(183), nullptr);
  avl = gpr_avl_add(avl, box(594), box(184), nullptr);
  avl = gpr_avl_add(avl, box(942), box(185), nullptr);
  avl = gpr_avl_add(avl, box(282), box(186), nullptr);
  avl = remove_int(avl, 434);
  avl = remove_int(avl, 134);
  avl = remove_int(avl, 270);
  avl = remove_int(avl, 512);
  avl = remove_int(avl, 265);
  avl = remove_int(avl, 21);
  avl = remove_int(avl, 193);
  avl = remove_int(avl, 797);
  avl = remove_int(avl, 347);
  avl = gpr_avl_add(avl, box(99), box(196), nullptr);
  avl = gpr_avl_add(avl, box(161), box(197), nullptr);
  avl = remove_int(avl, 484);
  avl = gpr_avl_add(avl, box(72), box(199), nullptr);
  avl = remove_int(avl, 629);
  avl = gpr_avl_add(avl, box(522), box(201), nullptr);
  avl = remove_int(avl, 679);
  avl = gpr_avl_add(avl, box(407), box(203), nullptr);
  avl = remove_int(avl, 693);
  avl = gpr_avl_add(avl, box(424), box(205), nullptr);
  avl = gpr_avl_add(avl, box(651), box(206), nullptr);
  avl = gpr_avl_add(avl, box(927), box(207), nullptr);
  avl = remove_int(avl, 553);
  avl = gpr_avl_add(avl, box(128), box(209), nullptr);
  avl = gpr_avl_add(avl, box(616), box(210), nullptr);
  avl = gpr_avl_add(avl, box(690), box(211), nullptr);
  avl = remove_int(avl, 241);
  avl = remove_int(avl, 179);
  avl = gpr_avl_add(avl, box(697), box(214), nullptr);
  avl = remove_int(avl, 779);
  avl = gpr_avl_add(avl, box(241), box(216), nullptr);
  avl = remove_int(avl, 190);
  avl = remove_int(avl, 210);
  avl = gpr_avl_add(avl, box(711), box(219), nullptr);
  avl = remove_int(avl, 251);
  avl = remove_int(avl, 61);
  avl = gpr_avl_add(avl, box(800), box(222), nullptr);
  avl = remove_int(avl, 551);
  avl = gpr_avl_add(avl, box(61), box(224), nullptr);
  avl = gpr_avl_add(avl, box(656), box(225), nullptr);
  avl = remove_int(avl, 130);
  avl = remove_int(avl, 368);
  avl = remove_int(avl, 150);
  avl = remove_int(avl, 73);
  avl = gpr_avl_add(avl, box(799), box(230), nullptr);
  avl = gpr_avl_add(avl, box(125), box(231), nullptr);
  avl = remove_int(avl, 107);
  avl = gpr_avl_add(avl, box(938), box(233), nullptr);
  avl = gpr_avl_add(avl, box(914), box(234), nullptr);
  avl = gpr_avl_add(avl, box(197), box(235), nullptr);
  avl = remove_int(avl, 736);
  avl = gpr_avl_add(avl, box(20), box(237), nullptr);
  avl = remove_int(avl, 224);
  avl = remove_int(avl, 841);
  avl = gpr_avl_add(avl, box(226), box(240), nullptr);
  avl = remove_int(avl, 963);
  avl = remove_int(avl, 796);
  avl = remove_int(avl, 728);
  avl = gpr_avl_add(avl, box(855), box(244), nullptr);
  avl = gpr_avl_add(avl, box(769), box(245), nullptr);
  avl = gpr_avl_add(avl, box(631), box(246), nullptr);
  avl = remove_int(avl, 648);
  avl = gpr_avl_add(avl, box(187), box(248), nullptr);
  avl = gpr_avl_add(avl, box(31), box(249), nullptr);
  avl = remove_int(avl, 163);
  avl = gpr_avl_add(avl, box(218), box(251), nullptr);
  avl = gpr_avl_add(avl, box(488), box(252), nullptr);
  avl = gpr_avl_add(avl, box(387), box(253), nullptr);
  avl = gpr_avl_add(avl, box(809), box(254), nullptr);
  avl = gpr_avl_add(avl, box(997), box(255), nullptr);
  avl = remove_int(avl, 678);
  avl = gpr_avl_add(avl, box(368), box(257), nullptr);
  avl = gpr_avl_add(avl, box(220), box(258), nullptr);
  avl = gpr_avl_add(avl, box(373), box(259), nullptr);
  avl = remove_int(avl, 874);
  avl = remove_int(avl, 682);
  avl = remove_int(avl, 1014);
  avl = remove_int(avl, 195);
  avl = gpr_avl_add(avl, box(868), box(264), nullptr);
  avl = remove_int(avl, 254);
  avl = remove_int(avl, 456);
  avl = gpr_avl_add(avl, box(906), box(267), nullptr);
  avl = remove_int(avl, 711);
  avl = gpr_avl_add(avl, box(632), box(269), nullptr);
  avl = remove_int(avl, 474);
  avl = gpr_avl_add(avl, box(508), box(271), nullptr);
  avl = gpr_avl_add(avl, box(518), box(272), nullptr);
  avl = remove_int(avl, 579);
  avl = remove_int(avl, 948);
  avl = gpr_avl_add(avl, box(789), box(275), nullptr);
  avl = gpr_avl_add(avl, box(48), box(276), nullptr);
  avl = gpr_avl_add(avl, box(256), box(277), nullptr);
  avl = gpr_avl_add(avl, box(754), box(278), nullptr);
  avl = remove_int(avl, 215);
  avl = gpr_avl_add(avl, box(679), box(280), nullptr);
  avl = gpr_avl_add(avl, box(606), box(281), nullptr);
  avl = remove_int(avl, 941);
  avl = remove_int(avl, 31);
  avl = gpr_avl_add(avl, box(758), box(284), nullptr);
  avl = remove_int(avl, 101);
  avl = gpr_avl_add(avl, box(244), box(286), nullptr);
  avl = gpr_avl_add(avl, box(337), box(287), nullptr);
  avl = gpr_avl_add(avl, box(461), box(288), nullptr);
  avl = remove_int(avl, 476);
  avl = gpr_avl_add(avl, box(845), box(290), nullptr);
  avl = remove_int(avl, 160);
  avl = gpr_avl_add(avl, box(690), box(292), nullptr);
  avl = remove_int(avl, 931);
  avl = gpr_avl_add(avl, box(869), box(294), nullptr);
  avl = gpr_avl_add(avl, box(1019), box(295), nullptr);
  avl = remove_int(avl, 591);
  avl = remove_int(avl, 635);
  avl = remove_int(avl, 67);
  avl = gpr_avl_add(avl, box(113), box(299), nullptr);
  avl = remove_int(avl, 305);
  avl = gpr_avl_add(avl, box(10), box(301), nullptr);
  avl = remove_int(avl, 823);
  avl = remove_int(avl, 288);
  avl = remove_int(avl, 239);
  avl = gpr_avl_add(avl, box(646), box(305), nullptr);
  avl = gpr_avl_add(avl, box(1006), box(306), nullptr);
  avl = gpr_avl_add(avl, box(954), box(307), nullptr);
  avl = gpr_avl_add(avl, box(199), box(308), nullptr);
  avl = gpr_avl_add(avl, box(69), box(309), nullptr);
  avl = gpr_avl_add(avl, box(984), box(310), nullptr);
  avl = remove_int(avl, 568);
  avl = remove_int(avl, 666);
  avl = remove_int(avl, 37);
  avl = gpr_avl_add(avl, box(845), box(314), nullptr);
  avl = remove_int(avl, 535);
  avl = remove_int(avl, 365);
  avl = remove_int(avl, 676);
  avl = remove_int(avl, 892);
  avl = remove_int(avl, 425);
  avl = remove_int(avl, 704);
  avl = remove_int(avl, 168);
  avl = gpr_avl_add(avl, box(853), box(322), nullptr);
  avl = gpr_avl_add(avl, box(335), box(323), nullptr);
  avl = gpr_avl_add(avl, box(961), box(324), nullptr);
  avl = gpr_avl_add(avl, box(73), box(325), nullptr);
  avl = remove_int(avl, 469);
  avl = gpr_avl_add(avl, box(449), box(327), nullptr);
  avl = remove_int(avl, 821);
  avl = gpr_avl_add(avl, box(845), box(329), nullptr);
  avl = remove_int(avl, 637);
  avl = gpr_avl_add(avl, box(769), box(331), nullptr);
  avl = gpr_avl_add(avl, box(901), box(332), nullptr);
  avl = remove_int(avl, 142);
  avl = remove_int(avl, 361);
  avl = remove_int(avl, 876);
  avl = gpr_avl_add(avl, box(614), box(336), nullptr);
  avl = gpr_avl_add(avl, box(729), box(337), nullptr);
  avl = remove_int(avl, 120);
  avl = remove_int(avl, 473);
  avl = remove_int(avl, 445);
  avl = gpr_avl_add(avl, box(978), box(341), nullptr);
  avl = gpr_avl_add(avl, box(164), box(342), nullptr);
  avl = gpr_avl_add(avl, box(1), box(343), nullptr);
  avl = remove_int(avl, 890);
  avl = gpr_avl_add(avl, box(605), box(345), nullptr);
  avl = gpr_avl_add(avl, box(178), box(346), nullptr);
  avl = gpr_avl_add(avl, box(481), box(347), nullptr);
  avl = gpr_avl_add(avl, box(772), box(348), nullptr);
  avl = remove_int(avl, 824);
  avl = remove_int(avl, 167);
  avl = remove_int(avl, 151);
  avl = gpr_avl_add(avl, box(698), box(352), nullptr);
  avl = gpr_avl_add(avl, box(202), box(353), nullptr);
  avl = gpr_avl_add(avl, box(921), box(354), nullptr);
  avl = gpr_avl_add(avl, box(875), box(355), nullptr);
  avl = remove_int(avl, 197);
  avl = remove_int(avl, 232);
  avl = gpr_avl_add(avl, box(209), box(358), nullptr);
  avl = remove_int(avl, 324);
  avl = remove_int(avl, 56);
  avl = remove_int(avl, 579);
  avl = remove_int(avl, 255);
  avl = remove_int(avl, 290);
  avl = gpr_avl_add(avl, box(661), box(364), nullptr);
  avl = gpr_avl_add(avl, box(113), box(365), nullptr);
  avl = remove_int(avl, 767);
  avl = gpr_avl_add(avl, box(586), box(367), nullptr);
  avl = gpr_avl_add(avl, box(121), box(368), nullptr);
  avl = remove_int(avl, 235);
  avl = remove_int(avl, 439);
  avl = remove_int(avl, 360);
  avl = gpr_avl_add(avl, box(916), box(372), nullptr);
  avl = remove_int(avl, 999);
  avl = gpr_avl_add(avl, box(825), box(374), nullptr);
  avl = gpr_avl_add(avl, box(177), box(375), nullptr);
  avl = remove_int(avl, 204);
  avl = remove_int(avl, 92);
  avl = gpr_avl_add(avl, box(794), box(378), nullptr);
  avl = gpr_avl_add(avl, box(463), box(379), nullptr);
  avl = gpr_avl_add(avl, box(472), box(380), nullptr);
  avl = remove_int(avl, 235);
  avl = gpr_avl_add(avl, box(840), box(382), nullptr);
  avl = remove_int(avl, 657);
  avl = gpr_avl_add(avl, box(586), box(384), nullptr);
  avl = gpr_avl_add(avl, box(979), box(385), nullptr);
  avl = remove_int(avl, 979);
  avl = gpr_avl_add(avl, box(639), box(387), nullptr);
  avl = remove_int(avl, 907);
  avl = remove_int(avl, 973);
  avl = gpr_avl_add(avl, box(913), box(390), nullptr);
  avl = gpr_avl_add(avl, box(566), box(391), nullptr);
  avl = gpr_avl_add(avl, box(883), box(392), nullptr);
  avl = gpr_avl_add(avl, box(552), box(393), nullptr);
  avl = gpr_avl_add(avl, box(16), box(394), nullptr);
  avl = remove_int(avl, 60);
  avl = gpr_avl_add(avl, box(567), box(396), nullptr);
  avl = gpr_avl_add(avl, box(705), box(397), nullptr);
  avl = gpr_avl_add(avl, box(94), box(398), nullptr);
  avl = remove_int(avl, 321);
  avl = gpr_avl_add(avl, box(207), box(400), nullptr);
  avl = gpr_avl_add(avl, box(682), box(401), nullptr);
  avl = gpr_avl_add(avl, box(592), box(402), nullptr);
  avl = gpr_avl_add(avl, box(10), box(403), nullptr);
  avl = remove_int(avl, 911);
  avl = remove_int(avl, 161);
  avl = gpr_avl_add(avl, box(86), box(406), nullptr);
  avl = remove_int(avl, 893);
  avl = remove_int(avl, 362);
  avl = gpr_avl_add(avl, box(599), box(409), nullptr);
  avl = remove_int(avl, 413);
  avl = gpr_avl_add(avl, box(867), box(411), nullptr);
  avl = remove_int(avl, 955);
  avl = gpr_avl_add(avl, box(341), box(413), nullptr);
  avl = gpr_avl_add(avl, box(887), box(414), nullptr);
  avl = remove_int(avl, 706);
  avl = gpr_avl_add(avl, box(939), box(416), nullptr);
  avl = remove_int(avl, 233);
  avl = remove_int(avl, 662);
  avl = remove_int(avl, 984);
  avl = remove_int(avl, 203);
  avl = gpr_avl_add(avl, box(326), box(421), nullptr);
  avl = remove_int(avl, 848);
  avl = gpr_avl_add(avl, box(235), box(423), nullptr);
  avl = remove_int(avl, 617);
  avl = gpr_avl_add(avl, box(565), box(425), nullptr);
  avl = remove_int(avl, 469);
  avl = gpr_avl_add(avl, box(988), box(427), nullptr);
  avl = remove_int(avl, 957);
  avl = gpr_avl_add(avl, box(426), box(429), nullptr);
  avl = remove_int(avl, 967);
  avl = gpr_avl_add(avl, box(890), box(431), nullptr);
  avl = gpr_avl_add(avl, box(473), box(432), nullptr);
  avl = remove_int(avl, 367);
  avl = remove_int(avl, 344);
  avl = remove_int(avl, 660);
  avl = remove_int(avl, 448);
  avl = remove_int(avl, 837);
  avl = remove_int(avl, 158);
  avl = gpr_avl_add(avl, box(459), box(439), nullptr);
  avl = remove_int(avl, 882);
  avl = remove_int(avl, 782);
  avl = gpr_avl_add(avl, box(408), box(442), nullptr);
  avl = gpr_avl_add(avl, box(728), box(443), nullptr);
  avl = remove_int(avl, 27);
  avl = gpr_avl_add(avl, box(137), box(445), nullptr);
  avl = gpr_avl_add(avl, box(239), box(446), nullptr);
  avl = remove_int(avl, 854);
  avl = gpr_avl_add(avl, box(104), box(448), nullptr);
  avl = gpr_avl_add(avl, box(823), box(449), nullptr);
  avl = gpr_avl_add(avl, box(524), box(450), nullptr);
  avl = gpr_avl_add(avl, box(995), box(451), nullptr);
  avl = remove_int(avl, 422);
  avl = remove_int(avl, 220);
  avl = gpr_avl_add(avl, box(856), box(454), nullptr);
  avl = remove_int(avl, 332);
  avl = gpr_avl_add(avl, box(679), box(456), nullptr);
  avl = remove_int(avl, 18);
  avl = gpr_avl_add(avl, box(837), box(458), nullptr);
  avl = remove_int(avl, 405);
  avl = remove_int(avl, 877);
  avl = remove_int(avl, 835);
  avl = gpr_avl_add(avl, box(547), box(462), nullptr);
  avl = remove_int(avl, 805);
  avl = remove_int(avl, 862);
  avl = gpr_avl_add(avl, box(75), box(465), nullptr);
  avl = remove_int(avl, 41);
  avl = gpr_avl_add(avl, box(310), box(467), nullptr);
  avl = remove_int(avl, 855);
  avl = gpr_avl_add(avl, box(20), box(469), nullptr);
  avl = remove_int(avl, 186);
  avl = remove_int(avl, 378);
  avl = remove_int(avl, 442);
  avl = remove_int(avl, 930);
  avl = gpr_avl_add(avl, box(118), box(474), nullptr);
  avl = gpr_avl_add(avl, box(96), box(475), nullptr);
  avl = remove_int(avl, 854);
  avl = gpr_avl_add(avl, box(65), box(477), nullptr);
  avl = gpr_avl_add(avl, box(573), box(478), nullptr);
  avl = gpr_avl_add(avl, box(4), box(479), nullptr);
  avl = gpr_avl_add(avl, box(451), box(480), nullptr);
  avl = gpr_avl_add(avl, box(774), box(481), nullptr);
  avl = gpr_avl_add(avl, box(126), box(482), nullptr);
  avl = remove_int(avl, 956);
  avl = remove_int(avl, 591);
  avl = remove_int(avl, 644);
  avl = gpr_avl_add(avl, box(304), box(486), nullptr);
  avl = remove_int(avl, 620);
  avl = remove_int(avl, 394);
  avl = gpr_avl_add(avl, box(1002), box(489), nullptr);
  avl = gpr_avl_add(avl, box(837), box(490), nullptr);
  avl = remove_int(avl, 485);
  avl = gpr_avl_add(avl, box(1005), box(492), nullptr);
  avl = remove_int(avl, 21);
  avl = gpr_avl_add(avl, box(396), box(494), nullptr);
  avl = remove_int(avl, 966);
  avl = gpr_avl_add(avl, box(105), box(496), nullptr);
  avl = gpr_avl_add(avl, box(316), box(497), nullptr);
  avl = remove_int(avl, 776);
  avl = gpr_avl_add(avl, box(188), box(499), nullptr);
  avl = remove_int(avl, 200);
  avl = gpr_avl_add(avl, box(98), box(501), nullptr);
  avl = gpr_avl_add(avl, box(831), box(502), nullptr);
  avl = gpr_avl_add(avl, box(227), box(503), nullptr);
  avl = gpr_avl_add(avl, box(220), box(504), nullptr);
  avl = remove_int(avl, 715);
  avl = remove_int(avl, 279);
  avl = gpr_avl_add(avl, box(701), box(507), nullptr);
  avl = gpr_avl_add(avl, box(726), box(508), nullptr);
  avl = gpr_avl_add(avl, box(815), box(509), nullptr);
  avl = gpr_avl_add(avl, box(749), box(510), nullptr);
  avl = remove_int(avl, 946);
  avl = remove_int(avl, 449);
  avl = remove_int(avl, 62);
  avl = remove_int(avl, 487);
  avl = gpr_avl_add(avl, box(545), box(515), nullptr);
  avl = remove_int(avl, 59);
  avl = gpr_avl_add(avl, box(168), box(517), nullptr);
  avl = remove_int(avl, 337);
  avl = gpr_avl_add(avl, box(69), box(519), nullptr);
  avl = remove_int(avl, 600);
  avl = gpr_avl_add(avl, box(591), box(521), nullptr);
  avl = gpr_avl_add(avl, box(960), box(522), nullptr);
  avl = gpr_avl_add(avl, box(116), box(523), nullptr);
  avl = remove_int(avl, 991);
  avl = gpr_avl_add(avl, box(760), box(525), nullptr);
  avl = gpr_avl_add(avl, box(664), box(526), nullptr);
  avl = gpr_avl_add(avl, box(547), box(527), nullptr);
  avl = remove_int(avl, 922);
  avl = gpr_avl_add(avl, box(290), box(529), nullptr);
  avl = gpr_avl_add(avl, box(859), box(530), nullptr);
  avl = gpr_avl_add(avl, box(49), box(531), nullptr);
  avl = remove_int(avl, 455);
  avl = remove_int(avl, 786);
  avl = gpr_avl_add(avl, box(613), box(534), nullptr);
  avl = gpr_avl_add(avl, box(326), box(535), nullptr);
  avl = remove_int(avl, 615);
  avl = gpr_avl_add(avl, box(45), box(537), nullptr);
  avl = gpr_avl_add(avl, box(162), box(538), nullptr);
  avl = gpr_avl_add(avl, box(189), box(539), nullptr);
  avl = remove_int(avl, 68);
  avl = remove_int(avl, 846);
  avl = gpr_avl_add(avl, box(608), box(542), nullptr);
  avl = remove_int(avl, 821);
  avl = gpr_avl_add(avl, box(978), box(544), nullptr);
  avl = gpr_avl_add(avl, box(892), box(545), nullptr);
  avl = remove_int(avl, 924);
  avl = gpr_avl_add(avl, box(708), box(547), nullptr);
  avl = remove_int(avl, 135);
  avl = remove_int(avl, 124);
  avl = gpr_avl_add(avl, box(301), box(550), nullptr);
  avl = gpr_avl_add(avl, box(939), box(551), nullptr);
  avl = gpr_avl_add(avl, box(344), box(552), nullptr);
  avl = remove_int(avl, 443);
  avl = remove_int(avl, 122);
  avl = gpr_avl_add(avl, box(636), box(555), nullptr);
  avl = remove_int(avl, 558);
  avl = gpr_avl_add(avl, box(923), box(557), nullptr);
  avl = remove_int(avl, 827);
  avl = gpr_avl_add(avl, box(649), box(559), nullptr);
  avl = gpr_avl_add(avl, box(808), box(560), nullptr);
  avl = remove_int(avl, 570);
  avl = remove_int(avl, 434);
  avl = gpr_avl_add(avl, box(40), box(563), nullptr);
  avl = gpr_avl_add(avl, box(725), box(564), nullptr);
  avl = remove_int(avl, 295);
  avl = remove_int(avl, 615);
  avl = remove_int(avl, 919);
  avl = remove_int(avl, 170);
  avl = remove_int(avl, 442);
  avl = remove_int(avl, 971);
  avl = gpr_avl_add(avl, box(483), box(571), nullptr);
  avl = gpr_avl_add(avl, box(512), box(572), nullptr);
  avl = remove_int(avl, 648);
  avl = remove_int(avl, 78);
  avl = remove_int(avl, 72);
  avl = remove_int(avl, 790);
  avl = remove_int(avl, 571);
  avl = gpr_avl_add(avl, box(898), box(578), nullptr);
  avl = remove_int(avl, 770);
  avl = remove_int(avl, 776);
  avl = gpr_avl_add(avl, box(602), box(581), nullptr);
  avl = remove_int(avl, 251);
  avl = gpr_avl_add(avl, box(303), box(583), nullptr);
  avl = remove_int(avl, 837);
  avl = gpr_avl_add(avl, box(714), box(585), nullptr);
  avl = remove_int(avl, 800);
  avl = gpr_avl_add(avl, box(266), box(587), nullptr);
  avl = gpr_avl_add(avl, box(555), box(588), nullptr);
  avl = remove_int(avl, 604);
  avl = remove_int(avl, 163);
  avl = remove_int(avl, 497);
  avl = gpr_avl_add(avl, box(296), box(592), nullptr);
  avl = remove_int(avl, 129);
  avl = gpr_avl_add(avl, box(656), box(594), nullptr);
  avl = remove_int(avl, 769);
  avl = remove_int(avl, 941);
  avl = gpr_avl_add(avl, box(775), box(597), nullptr);
  avl = gpr_avl_add(avl, box(846), box(598), nullptr);
  avl = remove_int(avl, 591);
  avl = remove_int(avl, 801);
  avl = remove_int(avl, 419);
  avl = remove_int(avl, 455);
  avl = gpr_avl_add(avl, box(866), box(603), nullptr);
  avl = gpr_avl_add(avl, box(575), box(604), nullptr);
  avl = gpr_avl_add(avl, box(620), box(605), nullptr);
  avl = remove_int(avl, 100);
  avl = remove_int(avl, 667);
  avl = gpr_avl_add(avl, box(138), box(608), nullptr);
  avl = gpr_avl_add(avl, box(566), box(609), nullptr);
  avl = gpr_avl_add(avl, box(673), box(610), nullptr);
  avl = gpr_avl_add(avl, box(178), box(611), nullptr);
  avl = remove_int(avl, 659);
  avl = gpr_avl_add(avl, box(759), box(613), nullptr);
  avl = gpr_avl_add(avl, box(1008), box(614), nullptr);
  avl = remove_int(avl, 116);
  avl = gpr_avl_add(avl, box(608), box(616), nullptr);
  avl = gpr_avl_add(avl, box(339), box(617), nullptr);
  avl = gpr_avl_add(avl, box(197), box(618), nullptr);
  avl = remove_int(avl, 25);
  avl = remove_int(avl, 628);
  avl = gpr_avl_add(avl, box(487), box(621), nullptr);
  avl = remove_int(avl, 739);
  avl = remove_int(avl, 100);
  avl = remove_int(avl, 928);
  avl = gpr_avl_add(avl, box(647), box(625), nullptr);
  avl = remove_int(avl, 978);
  avl = remove_int(avl, 143);
  avl = remove_int(avl, 755);
  avl = gpr_avl_add(avl, box(71), box(629), nullptr);
  avl = remove_int(avl, 205);
  avl = gpr_avl_add(avl, box(501), box(631), nullptr);
  avl = remove_int(avl, 723);
  avl = remove_int(avl, 852);
  avl = remove_int(avl, 1021);
  avl = remove_int(avl, 670);
  avl = remove_int(avl, 500);
  avl = gpr_avl_add(avl, box(330), box(637), nullptr);
  avl = remove_int(avl, 264);
  avl = gpr_avl_add(avl, box(69), box(639), nullptr);
  avl = remove_int(avl, 73);
  avl = gpr_avl_add(avl, box(745), box(641), nullptr);
  avl = remove_int(avl, 518);
  avl = remove_int(avl, 641);
  avl = remove_int(avl, 768);
  avl = gpr_avl_add(avl, box(988), box(645), nullptr);
  avl = gpr_avl_add(avl, box(899), box(646), nullptr);
  avl = remove_int(avl, 763);
  avl = remove_int(avl, 281);
  avl = remove_int(avl, 496);
  avl = gpr_avl_add(avl, box(445), box(650), nullptr);
  avl = remove_int(avl, 905);
  avl = gpr_avl_add(avl, box(275), box(652), nullptr);
  avl = gpr_avl_add(avl, box(137), box(653), nullptr);
  avl = remove_int(avl, 642);
  avl = gpr_avl_add(avl, box(708), box(655), nullptr);
  avl = remove_int(avl, 922);
  avl = gpr_avl_add(avl, box(743), box(657), nullptr);
  avl = remove_int(avl, 295);
  avl = remove_int(avl, 665);
  avl = remove_int(avl, 48);
  avl = gpr_avl_add(avl, box(1012), box(661), nullptr);
  avl = remove_int(avl, 71);
  avl = remove_int(avl, 523);
  avl = gpr_avl_add(avl, box(319), box(664), nullptr);
  avl = remove_int(avl, 632);
  avl = gpr_avl_add(avl, box(137), box(666), nullptr);
  avl = gpr_avl_add(avl, box(686), box(667), nullptr);
  avl = gpr_avl_add(avl, box(724), box(668), nullptr);
  avl = gpr_avl_add(avl, box(952), box(669), nullptr);
  avl = gpr_avl_add(avl, box(5), box(670), nullptr);
  avl = remove_int(avl, 35);
  avl = gpr_avl_add(avl, box(43), box(672), nullptr);
  avl = gpr_avl_add(avl, box(320), box(673), nullptr);
  avl = gpr_avl_add(avl, box(115), box(674), nullptr);
  avl = remove_int(avl, 377);
  avl = remove_int(avl, 591);
  avl = remove_int(avl, 87);
  avl = remove_int(avl, 93);
  avl = gpr_avl_add(avl, box(1016), box(679), nullptr);
  avl = gpr_avl_add(avl, box(605), box(680), nullptr);
  avl = gpr_avl_add(avl, box(152), box(681), nullptr);
  avl = gpr_avl_add(avl, box(113), box(682), nullptr);
  avl = remove_int(avl, 131);
  avl = remove_int(avl, 637);
  avl = gpr_avl_add(avl, box(156), box(685), nullptr);
  avl = remove_int(avl, 696);
  avl = gpr_avl_add(avl, box(546), box(687), nullptr);
  avl = remove_int(avl, 970);
  avl = remove_int(avl, 53);
  avl = remove_int(avl, 827);
  avl = remove_int(avl, 224);
  avl = remove_int(avl, 796);
  avl = remove_int(avl, 34);
  avl = remove_int(avl, 922);
  avl = remove_int(avl, 277);
  avl = remove_int(avl, 650);
  avl = remove_int(avl, 222);
  avl = remove_int(avl, 244);
  avl = remove_int(avl, 576);
  avl = remove_int(avl, 413);
  avl = gpr_avl_add(avl, box(500), box(701), nullptr);
  avl = remove_int(avl, 924);
  avl = gpr_avl_add(avl, box(825), box(703), nullptr);
  avl = remove_int(avl, 888);
  avl = remove_int(avl, 931);
  avl = gpr_avl_add(avl, box(285), box(706), nullptr);
  avl = remove_int(avl, 62);
  avl = remove_int(avl, 444);
  avl = remove_int(avl, 946);
  avl = gpr_avl_add(avl, box(122), box(710), nullptr);
  avl = gpr_avl_add(avl, box(846), box(711), nullptr);
  avl = remove_int(avl, 628);
  avl = gpr_avl_add(avl, box(511), box(713), nullptr);
  avl = gpr_avl_add(avl, box(398), box(714), nullptr);
  avl = remove_int(avl, 730);
  avl = gpr_avl_add(avl, box(797), box(716), nullptr);
  avl = remove_int(avl, 897);
  avl = remove_int(avl, 228);
  avl = remove_int(avl, 544);
  avl = remove_int(avl, 552);
  avl = remove_int(avl, 783);
  avl = remove_int(avl, 583);
  avl = remove_int(avl, 894);
  avl = remove_int(avl, 942);
  avl = gpr_avl_add(avl, box(346), box(725), nullptr);
  avl = gpr_avl_add(avl, box(1015), box(726), nullptr);
  avl = remove_int(avl, 813);
  avl = gpr_avl_add(avl, box(213), box(728), nullptr);
  avl = remove_int(avl, 468);
  avl = remove_int(avl, 365);
  avl = remove_int(avl, 399);
  avl = gpr_avl_add(avl, box(380), box(732), nullptr);
  avl = remove_int(avl, 835);
  avl = remove_int(avl, 970);
  avl = gpr_avl_add(avl, box(700), box(735), nullptr);
  avl = gpr_avl_add(avl, box(807), box(736), nullptr);
  avl = remove_int(avl, 312);
  avl = remove_int(avl, 282);
  avl = remove_int(avl, 370);
  avl = remove_int(avl, 999);
  avl = remove_int(avl, 241);
  avl = remove_int(avl, 884);
  avl = gpr_avl_add(avl, box(587), box(743), nullptr);
  avl = gpr_avl_add(avl, box(332), box(744), nullptr);
  avl = remove_int(avl, 686);
  avl = remove_int(avl, 206);
  avl = remove_int(avl, 835);
  avl = gpr_avl_add(avl, box(334), box(748), nullptr);
  avl = remove_int(avl, 171);
  avl = gpr_avl_add(avl, box(1002), box(750), nullptr);
  avl = gpr_avl_add(avl, box(779), box(751), nullptr);
  avl = gpr_avl_add(avl, box(307), box(752), nullptr);
  avl = gpr_avl_add(avl, box(127), box(753), nullptr);
  avl = gpr_avl_add(avl, box(251), box(754), nullptr);
  avl = remove_int(avl, 790);
  avl = remove_int(avl, 189);
  avl = remove_int(avl, 193);
  avl = remove_int(avl, 38);
  avl = remove_int(avl, 124);
  avl = gpr_avl_add(avl, box(812), box(760), nullptr);
  avl = remove_int(avl, 43);
  avl = gpr_avl_add(avl, box(871), box(762), nullptr);
  avl = gpr_avl_add(avl, box(580), box(763), nullptr);
  avl = remove_int(avl, 501);
  avl = remove_int(avl, 462);
  avl = remove_int(avl, 599);
  avl = gpr_avl_add(avl, box(240), box(767), nullptr);
  avl = gpr_avl_add(avl, box(285), box(768), nullptr);
  avl = gpr_avl_add(avl, box(472), box(769), nullptr);
  avl = remove_int(avl, 865);
  avl = remove_int(avl, 763);
  avl = remove_int(avl, 245);
  avl = remove_int(avl, 80);
  avl = remove_int(avl, 713);
  avl = remove_int(avl, 654);
  avl = remove_int(avl, 1014);
  avl = gpr_avl_add(avl, box(495), box(777), nullptr);
  avl = gpr_avl_add(avl, box(552), box(778), nullptr);
  avl = remove_int(avl, 19);
  avl = remove_int(avl, 803);
  avl = gpr_avl_add(avl, box(508), box(781), nullptr);
  avl = remove_int(avl, 699);
  avl = remove_int(avl, 260);
  avl = remove_int(avl, 92);
  avl = remove_int(avl, 497);
  avl = gpr_avl_add(avl, box(970), box(786), nullptr);
  avl = remove_int(avl, 987);
  avl = remove_int(avl, 168);
  avl = remove_int(avl, 476);
  avl = remove_int(avl, 248);
  avl = gpr_avl_add(avl, box(358), box(791), nullptr);
  avl = remove_int(avl, 804);
  avl = remove_int(avl, 77);
  avl = remove_int(avl, 905);
  avl = remove_int(avl, 362);
  avl = gpr_avl_add(avl, box(578), box(796), nullptr);
  avl = remove_int(avl, 38);
  avl = remove_int(avl, 595);
  avl = gpr_avl_add(avl, box(213), box(799), nullptr);
  avl = remove_int(avl, 7);
  avl = remove_int(avl, 620);
  avl = gpr_avl_add(avl, box(946), box(802), nullptr);
  avl = remove_int(avl, 145);
  avl = gpr_avl_add(avl, box(628), box(804), nullptr);
  avl = remove_int(avl, 972);
  avl = gpr_avl_add(avl, box(728), box(806), nullptr);
  avl = remove_int(avl, 91);
  avl = gpr_avl_add(avl, box(136), box(808), nullptr);
  avl = gpr_avl_add(avl, box(841), box(809), nullptr);
  avl = gpr_avl_add(avl, box(265), box(810), nullptr);
  avl = gpr_avl_add(avl, box(701), box(811), nullptr);
  avl = gpr_avl_add(avl, box(27), box(812), nullptr);
  avl = remove_int(avl, 72);
  avl = remove_int(avl, 14);
  avl = gpr_avl_add(avl, box(286), box(815), nullptr);
  avl = remove_int(avl, 996);
  avl = remove_int(avl, 998);
  avl = gpr_avl_add(avl, box(466), box(818), nullptr);
  avl = remove_int(avl, 1009);
  avl = remove_int(avl, 741);
  avl = remove_int(avl, 947);
  avl = remove_int(avl, 241);
  avl = remove_int(avl, 954);
  avl = remove_int(avl, 183);
  avl = remove_int(avl, 395);
  avl = remove_int(avl, 951);
  avl = gpr_avl_add(avl, box(267), box(827), nullptr);
  avl = remove_int(avl, 812);
  avl = gpr_avl_add(avl, box(577), box(829), nullptr);
  avl = remove_int(avl, 624);
  avl = remove_int(avl, 847);
  avl = remove_int(avl, 745);
  avl = gpr_avl_add(avl, box(491), box(833), nullptr);
  avl = gpr_avl_add(avl, box(941), box(834), nullptr);
  avl = remove_int(avl, 258);
  avl = gpr_avl_add(avl, box(410), box(836), nullptr);
  avl = gpr_avl_add(avl, box(80), box(837), nullptr);
  avl = gpr_avl_add(avl, box(196), box(838), nullptr);
  avl = gpr_avl_add(avl, box(5), box(839), nullptr);
  avl = remove_int(avl, 782);
  avl = gpr_avl_add(avl, box(827), box(841), nullptr);
  avl = remove_int(avl, 472);
  avl = remove_int(avl, 664);
  avl = gpr_avl_add(avl, box(409), box(844), nullptr);
  avl = gpr_avl_add(avl, box(62), box(845), nullptr);
  avl = remove_int(avl, 56);
  avl = remove_int(avl, 606);
  avl = remove_int(avl, 707);
  avl = remove_int(avl, 989);
  avl = remove_int(avl, 549);
  avl = remove_int(avl, 259);
  avl = gpr_avl_add(avl, box(405), box(852), nullptr);
  avl = remove_int(avl, 587);
  avl = remove_int(avl, 350);
  avl = gpr_avl_add(avl, box(980), box(855), nullptr);
  avl = gpr_avl_add(avl, box(992), box(856), nullptr);
  avl = gpr_avl_add(avl, box(818), box(857), nullptr);
  avl = remove_int(avl, 853);
  avl = remove_int(avl, 701);
  avl = gpr_avl_add(avl, box(675), box(860), nullptr);
  avl = remove_int(avl, 248);
  avl = remove_int(avl, 649);
  avl = gpr_avl_add(avl, box(508), box(863), nullptr);
  avl = remove_int(avl, 927);
  avl = gpr_avl_add(avl, box(957), box(865), nullptr);
  avl = gpr_avl_add(avl, box(698), box(866), nullptr);
  avl = gpr_avl_add(avl, box(388), box(867), nullptr);
  avl = gpr_avl_add(avl, box(532), box(868), nullptr);
  avl = gpr_avl_add(avl, box(681), box(869), nullptr);
  avl = remove_int(avl, 544);
  avl = remove_int(avl, 991);
  avl = remove_int(avl, 397);
  avl = gpr_avl_add(avl, box(954), box(873), nullptr);
  avl = gpr_avl_add(avl, box(219), box(874), nullptr);
  avl = gpr_avl_add(avl, box(465), box(875), nullptr);
  avl = remove_int(avl, 371);
  avl = gpr_avl_add(avl, box(601), box(877), nullptr);
  avl = gpr_avl_add(avl, box(543), box(878), nullptr);
  avl = remove_int(avl, 329);
  avl = gpr_avl_add(avl, box(560), box(880), nullptr);
  avl = remove_int(avl, 898);
  avl = gpr_avl_add(avl, box(455), box(882), nullptr);
  avl = remove_int(avl, 313);
  avl = gpr_avl_add(avl, box(215), box(884), nullptr);
  avl = remove_int(avl, 846);
  avl = gpr_avl_add(avl, box(608), box(886), nullptr);
  avl = remove_int(avl, 248);
  avl = gpr_avl_add(avl, box(575), box(888), nullptr);
  avl = remove_int(avl, 207);
  avl = remove_int(avl, 810);
  avl = remove_int(avl, 665);
  avl = remove_int(avl, 361);
  avl = gpr_avl_add(avl, box(154), box(893), nullptr);
  avl = gpr_avl_add(avl, box(329), box(894), nullptr);
  avl = gpr_avl_add(avl, box(326), box(895), nullptr);
  avl = remove_int(avl, 746);
  avl = remove_int(avl, 99);
  avl = gpr_avl_add(avl, box(464), box(898), nullptr);
  avl = gpr_avl_add(avl, box(141), box(899), nullptr);
  avl = remove_int(avl, 383);
  avl = gpr_avl_add(avl, box(414), box(901), nullptr);
  avl = gpr_avl_add(avl, box(777), box(902), nullptr);
  avl = remove_int(avl, 972);
  avl = remove_int(avl, 841);
  avl = remove_int(avl, 100);
  avl = gpr_avl_add(avl, box(828), box(906), nullptr);
  avl = remove_int(avl, 785);
  avl = gpr_avl_add(avl, box(1008), box(908), nullptr);
  avl = gpr_avl_add(avl, box(46), box(909), nullptr);
  avl = remove_int(avl, 399);
  avl = gpr_avl_add(avl, box(178), box(911), nullptr);
  avl = gpr_avl_add(avl, box(573), box(912), nullptr);
  avl = remove_int(avl, 299);
  avl = gpr_avl_add(avl, box(690), box(914), nullptr);
  avl = gpr_avl_add(avl, box(692), box(915), nullptr);
  avl = remove_int(avl, 404);
  avl = remove_int(avl, 16);
  avl = remove_int(avl, 746);
  avl = remove_int(avl, 486);
  avl = remove_int(avl, 119);
  avl = gpr_avl_add(avl, box(167), box(921), nullptr);
  avl = remove_int(avl, 328);
  avl = gpr_avl_add(avl, box(89), box(923), nullptr);
  avl = remove_int(avl, 867);
  avl = remove_int(avl, 626);
  avl = remove_int(avl, 507);
  avl = gpr_avl_add(avl, box(365), box(927), nullptr);
  avl = gpr_avl_add(avl, box(58), box(928), nullptr);
  avl = gpr_avl_add(avl, box(70), box(929), nullptr);
  avl = remove_int(avl, 81);
  avl = remove_int(avl, 797);
  avl = gpr_avl_add(avl, box(846), box(932), nullptr);
  avl = remove_int(avl, 642);
  avl = gpr_avl_add(avl, box(777), box(934), nullptr);
  avl = remove_int(avl, 107);
  avl = gpr_avl_add(avl, box(691), box(936), nullptr);
  avl = gpr_avl_add(avl, box(820), box(937), nullptr);
  avl = gpr_avl_add(avl, box(202), box(938), nullptr);
  avl = gpr_avl_add(avl, box(308), box(939), nullptr);
  avl = gpr_avl_add(avl, box(20), box(940), nullptr);
  avl = remove_int(avl, 289);
  avl = gpr_avl_add(avl, box(714), box(942), nullptr);
  avl = gpr_avl_add(avl, box(584), box(943), nullptr);
  avl = remove_int(avl, 294);
  avl = gpr_avl_add(avl, box(496), box(945), nullptr);
  avl = gpr_avl_add(avl, box(394), box(946), nullptr);
  avl = gpr_avl_add(avl, box(860), box(947), nullptr);
  avl = gpr_avl_add(avl, box(58), box(948), nullptr);
  avl = remove_int(avl, 784);
  avl = remove_int(avl, 584);
  avl = remove_int(avl, 708);
  avl = gpr_avl_add(avl, box(142), box(952), nullptr);
  avl = gpr_avl_add(avl, box(247), box(953), nullptr);
  avl = gpr_avl_add(avl, box(389), box(954), nullptr);
  avl = remove_int(avl, 390);
  avl = gpr_avl_add(avl, box(465), box(956), nullptr);
  avl = gpr_avl_add(avl, box(936), box(957), nullptr);
  avl = gpr_avl_add(avl, box(309), box(958), nullptr);
  avl = remove_int(avl, 928);
  avl = remove_int(avl, 128);
  avl = remove_int(avl, 979);
  avl = remove_int(avl, 670);
  avl = remove_int(avl, 738);
  avl = remove_int(avl, 271);
  avl = remove_int(avl, 540);
  avl = gpr_avl_add(avl, box(365), box(966), nullptr);
  avl = remove_int(avl, 82);
  avl = gpr_avl_add(avl, box(728), box(968), nullptr);
  avl = remove_int(avl, 852);
  avl = gpr_avl_add(avl, box(884), box(970), nullptr);
  avl = gpr_avl_add(avl, box(502), box(971), nullptr);
  avl = remove_int(avl, 898);
  avl = remove_int(avl, 481);
  avl = gpr_avl_add(avl, box(911), box(974), nullptr);
  avl = remove_int(avl, 787);
  avl = remove_int(avl, 785);
  avl = remove_int(avl, 537);
  avl = remove_int(avl, 535);
  avl = remove_int(avl, 136);
  avl = remove_int(avl, 749);
  avl = remove_int(avl, 637);
  avl = remove_int(avl, 900);
  avl = gpr_avl_add(avl, box(598), box(983), nullptr);
  avl = remove_int(avl, 25);
  avl = remove_int(avl, 697);
  avl = gpr_avl_add(avl, box(645), box(986), nullptr);
  avl = gpr_avl_add(avl, box(211), box(987), nullptr);
  avl = gpr_avl_add(avl, box(589), box(988), nullptr);
  avl = remove_int(avl, 702);
  avl = gpr_avl_add(avl, box(53), box(990), nullptr);
  avl = remove_int(avl, 492);
  avl = remove_int(avl, 185);
  avl = remove_int(avl, 246);
  avl = remove_int(avl, 257);
  avl = remove_int(avl, 502);
  avl = remove_int(avl, 34);
  avl = gpr_avl_add(avl, box(74), box(997), nullptr);
  avl = gpr_avl_add(avl, box(834), box(998), nullptr);
  avl = gpr_avl_add(avl, box(514), box(999), nullptr);
  avl = gpr_avl_add(avl, box(75), box(1000), nullptr);
  avl = remove_int(avl, 745);
  avl = gpr_avl_add(avl, box(362), box(1002), nullptr);
  avl = remove_int(avl, 215);
  avl = gpr_avl_add(avl, box(624), box(1004), nullptr);
  avl = remove_int(avl, 404);
  avl = remove_int(avl, 359);
  avl = remove_int(avl, 491);
  avl = gpr_avl_add(avl, box(903), box(1008), nullptr);
  avl = gpr_avl_add(avl, box(240), box(1009), nullptr);
  avl = remove_int(avl, 95);
  avl = gpr_avl_add(avl, box(119), box(1011), nullptr);
  avl = gpr_avl_add(avl, box(857), box(1012), nullptr);
  avl = remove_int(avl, 39);
  avl = remove_int(avl, 866);
  avl = gpr_avl_add(avl, box(503), box(1015), nullptr);
  avl = gpr_avl_add(avl, box(740), box(1016), nullptr);
  avl = remove_int(avl, 637);
  avl = remove_int(avl, 156);
  avl = remove_int(avl, 6);
  avl = remove_int(avl, 745);
  avl = remove_int(avl, 433);
  avl = remove_int(avl, 283);
  avl = gpr_avl_add(avl, box(625), box(1023), nullptr);
  avl = remove_int(avl, 638);
  avl = gpr_avl_add(avl, box(299), box(1025), nullptr);
  avl = gpr_avl_add(avl, box(584), box(1026), nullptr);
  avl = remove_int(avl, 863);
  avl = gpr_avl_add(avl, box(612), box(1028), nullptr);
  avl = gpr_avl_add(avl, box(62), box(1029), nullptr);
  avl = gpr_avl_add(avl, box(432), box(1030), nullptr);
  avl = remove_int(avl, 371);
  avl = remove_int(avl, 790);
  avl = remove_int(avl, 227);
  avl = remove_int(avl, 836);
  avl = gpr_avl_add(avl, box(703), box(1035), nullptr);
  avl = gpr_avl_add(avl, box(644), box(1036), nullptr);
  avl = remove_int(avl, 638);
  avl = gpr_avl_add(avl, box(13), box(1038), nullptr);
  avl = remove_int(avl, 66);
  avl = remove_int(avl, 82);
  avl = gpr_avl_add(avl, box(362), box(1041), nullptr);
  avl = gpr_avl_add(avl, box(783), box(1042), nullptr);
  avl = remove_int(avl, 60);
  avl = gpr_avl_add(avl, box(80), box(1044), nullptr);
  avl = gpr_avl_add(avl, box(825), box(1045), nullptr);
  avl = gpr_avl_add(avl, box(688), box(1046), nullptr);
  avl = gpr_avl_add(avl, box(662), box(1047), nullptr);
  avl = remove_int(avl, 156);
  avl = remove_int(avl, 376);
  avl = remove_int(avl, 99);
  avl = gpr_avl_add(avl, box(526), box(1051), nullptr);
  avl = gpr_avl_add(avl, box(168), box(1052), nullptr);
  avl = remove_int(avl, 646);
  avl = remove_int(avl, 380);
  avl = remove_int(avl, 833);
  avl = gpr_avl_add(avl, box(53), box(1056), nullptr);
  avl = remove_int(avl, 105);
  avl = gpr_avl_add(avl, box(373), box(1058), nullptr);
  avl = gpr_avl_add(avl, box(184), box(1059), nullptr);
  avl = remove_int(avl, 288);
  avl = gpr_avl_add(avl, box(966), box(1061), nullptr);
  avl = remove_int(avl, 158);
  avl = gpr_avl_add(avl, box(406), box(1063), nullptr);
  avl = remove_int(avl, 470);
  avl = gpr_avl_add(avl, box(283), box(1065), nullptr);
  avl = gpr_avl_add(avl, box(838), box(1066), nullptr);
  avl = gpr_avl_add(avl, box(288), box(1067), nullptr);
  avl = gpr_avl_add(avl, box(950), box(1068), nullptr);
  avl = gpr_avl_add(avl, box(163), box(1069), nullptr);
  avl = remove_int(avl, 623);
  avl = remove_int(avl, 769);
  avl = gpr_avl_add(avl, box(144), box(1072), nullptr);
  avl = gpr_avl_add(avl, box(489), box(1073), nullptr);
  avl = remove_int(avl, 15);
  avl = gpr_avl_add(avl, box(971), box(1075), nullptr);
  avl = remove_int(avl, 660);
  avl = gpr_avl_add(avl, box(255), box(1077), nullptr);
  avl = remove_int(avl, 494);
  avl = gpr_avl_add(avl, box(109), box(1079), nullptr);
  avl = gpr_avl_add(avl, box(420), box(1080), nullptr);
  avl = gpr_avl_add(avl, box(509), box(1081), nullptr);
  avl = remove_int(avl, 178);
  avl = gpr_avl_add(avl, box(216), box(1083), nullptr);
  avl = gpr_avl_add(avl, box(707), box(1084), nullptr);
  avl = gpr_avl_add(avl, box(411), box(1085), nullptr);
  avl = gpr_avl_add(avl, box(352), box(1086), nullptr);
  avl = remove_int(avl, 983);
  avl = gpr_avl_add(avl, box(6), box(1088), nullptr);
  avl = gpr_avl_add(avl, box(1014), box(1089), nullptr);
  avl = remove_int(avl, 98);
  avl = remove_int(avl, 325);
  avl = gpr_avl_add(avl, box(851), box(1092), nullptr);
  avl = remove_int(avl, 553);
  avl = gpr_avl_add(avl, box(218), box(1094), nullptr);
  avl = gpr_avl_add(avl, box(261), box(1095), nullptr);
  avl = remove_int(avl, 31);
  avl = gpr_avl_add(avl, box(872), box(1097), nullptr);
  avl = remove_int(avl, 543);
  avl = remove_int(avl, 314);
  avl = remove_int(avl, 443);
  avl = gpr_avl_add(avl, box(533), box(1101), nullptr);
  avl = remove_int(avl, 881);
  avl = remove_int(avl, 269);
  avl = remove_int(avl, 940);
  avl = remove_int(avl, 909);
  avl = remove_int(avl, 197);
  avl = remove_int(avl, 773);
  avl = remove_int(avl, 790);
  avl = remove_int(avl, 345);
  avl = gpr_avl_add(avl, box(965), box(1110), nullptr);
  avl = remove_int(avl, 622);
  avl = gpr_avl_add(avl, box(352), box(1112), nullptr);
  avl = remove_int(avl, 182);
  avl = gpr_avl_add(avl, box(534), box(1114), nullptr);
  avl = gpr_avl_add(avl, box(97), box(1115), nullptr);
  avl = gpr_avl_add(avl, box(198), box(1116), nullptr);
  avl = remove_int(avl, 750);
  avl = gpr_avl_add(avl, box(98), box(1118), nullptr);
  avl = remove_int(avl, 943);
  avl = gpr_avl_add(avl, box(254), box(1120), nullptr);
  avl = gpr_avl_add(avl, box(30), box(1121), nullptr);
  avl = remove_int(avl, 14);
  avl = remove_int(avl, 475);
  avl = remove_int(avl, 82);
  avl = gpr_avl_add(avl, box(789), box(1125), nullptr);
  avl = gpr_avl_add(avl, box(402), box(1126), nullptr);
  avl = remove_int(avl, 1019);
  avl = gpr_avl_add(avl, box(858), box(1128), nullptr);
  avl = gpr_avl_add(avl, box(625), box(1129), nullptr);
  avl = remove_int(avl, 675);
  avl = remove_int(avl, 323);
  avl = gpr_avl_add(avl, box(329), box(1132), nullptr);
  avl = remove_int(avl, 929);
  avl = remove_int(avl, 44);
  avl = gpr_avl_add(avl, box(443), box(1135), nullptr);
  avl = gpr_avl_add(avl, box(653), box(1136), nullptr);
  avl = gpr_avl_add(avl, box(750), box(1137), nullptr);
  avl = gpr_avl_add(avl, box(252), box(1138), nullptr);
  avl = gpr_avl_add(avl, box(449), box(1139), nullptr);
  avl = remove_int(avl, 1022);
  avl = remove_int(avl, 357);
  avl = remove_int(avl, 602);
  avl = remove_int(avl, 131);
  avl = gpr_avl_add(avl, box(531), box(1144), nullptr);
  avl = remove_int(avl, 806);
  avl = gpr_avl_add(avl, box(455), box(1146), nullptr);
  avl = remove_int(avl, 31);
  avl = gpr_avl_add(avl, box(154), box(1148), nullptr);
  avl = gpr_avl_add(avl, box(189), box(1149), nullptr);
  avl = remove_int(avl, 786);
  avl = gpr_avl_add(avl, box(496), box(1151), nullptr);
  avl = gpr_avl_add(avl, box(81), box(1152), nullptr);
  avl = gpr_avl_add(avl, box(59), box(1153), nullptr);
  avl = remove_int(avl, 424);
  avl = remove_int(avl, 668);
  avl = gpr_avl_add(avl, box(723), box(1156), nullptr);
  avl = gpr_avl_add(avl, box(822), box(1157), nullptr);
  avl = gpr_avl_add(avl, box(354), box(1158), nullptr);
  avl = remove_int(avl, 738);
  avl = gpr_avl_add(avl, box(686), box(1160), nullptr);
  avl = gpr_avl_add(avl, box(43), box(1161), nullptr);
  avl = gpr_avl_add(avl, box(625), box(1162), nullptr);
  avl = gpr_avl_add(avl, box(902), box(1163), nullptr);
  avl = gpr_avl_add(avl, box(12), box(1164), nullptr);
  avl = gpr_avl_add(avl, box(977), box(1165), nullptr);
  avl = gpr_avl_add(avl, box(699), box(1166), nullptr);
  avl = gpr_avl_add(avl, box(189), box(1167), nullptr);
  avl = remove_int(avl, 672);
  avl = remove_int(avl, 90);
  avl = remove_int(avl, 757);
  avl = remove_int(avl, 494);
  avl = gpr_avl_add(avl, box(759), box(1172), nullptr);
  avl = remove_int(avl, 758);
  avl = remove_int(avl, 222);
  avl = gpr_avl_add(avl, box(975), box(1175), nullptr);
  avl = remove_int(avl, 993);
  avl = gpr_avl_add(avl, box(2), box(1177), nullptr);
  avl = gpr_avl_add(avl, box(70), box(1178), nullptr);
  avl = remove_int(avl, 350);
  avl = remove_int(avl, 972);
  avl = remove_int(avl, 880);
  avl = gpr_avl_add(avl, box(753), box(1182), nullptr);
  avl = remove_int(avl, 404);
  avl = gpr_avl_add(avl, box(294), box(1184), nullptr);
  avl = remove_int(avl, 474);
  avl = gpr_avl_add(avl, box(228), box(1186), nullptr);
  avl = gpr_avl_add(avl, box(484), box(1187), nullptr);
  avl = remove_int(avl, 238);
  avl = remove_int(avl, 53);
  avl = remove_int(avl, 691);
  avl = gpr_avl_add(avl, box(345), box(1191), nullptr);
  avl = remove_int(avl, 0);
  avl = gpr_avl_add(avl, box(230), box(1193), nullptr);
  avl = remove_int(avl, 227);
  avl = remove_int(avl, 152);
  avl = gpr_avl_add(avl, box(884), box(1196), nullptr);
  avl = remove_int(avl, 823);
  avl = remove_int(avl, 53);
  avl = gpr_avl_add(avl, box(1015), box(1199), nullptr);
  avl = gpr_avl_add(avl, box(697), box(1200), nullptr);
  avl = gpr_avl_add(avl, box(376), box(1201), nullptr);
  avl = remove_int(avl, 411);
  avl = gpr_avl_add(avl, box(888), box(1203), nullptr);
  avl = remove_int(avl, 55);
  avl = gpr_avl_add(avl, box(85), box(1205), nullptr);
  avl = remove_int(avl, 947);
  avl = remove_int(avl, 382);
  avl = remove_int(avl, 777);
  avl = gpr_avl_add(avl, box(1017), box(1209), nullptr);
  avl = gpr_avl_add(avl, box(169), box(1210), nullptr);
  avl = gpr_avl_add(avl, box(156), box(1211), nullptr);
  avl = remove_int(avl, 153);
  avl = remove_int(avl, 642);
  avl = remove_int(avl, 158);
  avl = gpr_avl_add(avl, box(554), box(1215), nullptr);
  avl = gpr_avl_add(avl, box(76), box(1216), nullptr);
  avl = gpr_avl_add(avl, box(756), box(1217), nullptr);
  avl = remove_int(avl, 767);
  avl = remove_int(avl, 112);
  avl = remove_int(avl, 539);
  avl = remove_int(avl, 544);
  avl = remove_int(avl, 628);
  avl = remove_int(avl, 385);
  avl = remove_int(avl, 514);
  avl = remove_int(avl, 362);
  avl = gpr_avl_add(avl, box(523), box(1226), nullptr);
  avl = gpr_avl_add(avl, box(712), box(1227), nullptr);
  avl = gpr_avl_add(avl, box(474), box(1228), nullptr);
  avl = gpr_avl_add(avl, box(882), box(1229), nullptr);
  avl = gpr_avl_add(avl, box(965), box(1230), nullptr);
  avl = remove_int(avl, 464);
  avl = gpr_avl_add(avl, box(319), box(1232), nullptr);
  avl = gpr_avl_add(avl, box(504), box(1233), nullptr);
  avl = remove_int(avl, 818);
  avl = gpr_avl_add(avl, box(884), box(1235), nullptr);
  avl = gpr_avl_add(avl, box(813), box(1236), nullptr);
  avl = gpr_avl_add(avl, box(795), box(1237), nullptr);
  avl = remove_int(avl, 306);
  avl = gpr_avl_add(avl, box(799), box(1239), nullptr);
  avl = remove_int(avl, 534);
  avl = gpr_avl_add(avl, box(480), box(1241), nullptr);
  avl = gpr_avl_add(avl, box(656), box(1242), nullptr);
  avl = gpr_avl_add(avl, box(709), box(1243), nullptr);
  avl = gpr_avl_add(avl, box(500), box(1244), nullptr);
  avl = remove_int(avl, 740);
  avl = gpr_avl_add(avl, box(980), box(1246), nullptr);
  avl = gpr_avl_add(avl, box(458), box(1247), nullptr);
  avl = remove_int(avl, 377);
  avl = remove_int(avl, 338);
  avl = gpr_avl_add(avl, box(554), box(1250), nullptr);
  avl = gpr_avl_add(avl, box(504), box(1251), nullptr);
  avl = gpr_avl_add(avl, box(603), box(1252), nullptr);
  avl = gpr_avl_add(avl, box(761), box(1253), nullptr);
  avl = remove_int(avl, 431);
  avl = gpr_avl_add(avl, box(707), box(1255), nullptr);
  avl = gpr_avl_add(avl, box(673), box(1256), nullptr);
  avl = remove_int(avl, 998);
  avl = remove_int(avl, 332);
  avl = remove_int(avl, 413);
  avl = remove_int(avl, 227);
  avl = remove_int(avl, 249);
  avl = remove_int(avl, 309);
  avl = remove_int(avl, 459);
  avl = gpr_avl_add(avl, box(645), box(1264), nullptr);
  avl = remove_int(avl, 858);
  avl = remove_int(avl, 997);
  avl = gpr_avl_add(avl, box(519), box(1267), nullptr);
  avl = remove_int(avl, 614);
  avl = remove_int(avl, 462);
  avl = remove_int(avl, 792);
  avl = gpr_avl_add(avl, box(987), box(1271), nullptr);
  avl = gpr_avl_add(avl, box(309), box(1272), nullptr);
  avl = remove_int(avl, 747);
  avl = gpr_avl_add(avl, box(621), box(1274), nullptr);
  avl = gpr_avl_add(avl, box(450), box(1275), nullptr);
  avl = remove_int(avl, 265);
  avl = remove_int(avl, 8);
  avl = remove_int(avl, 383);
  avl = gpr_avl_add(avl, box(238), box(1279), nullptr);
  avl = remove_int(avl, 241);
  avl = gpr_avl_add(avl, box(180), box(1281), nullptr);
  avl = gpr_avl_add(avl, box(411), box(1282), nullptr);
  avl = gpr_avl_add(avl, box(791), box(1283), nullptr);
  avl = gpr_avl_add(avl, box(955), box(1284), nullptr);
  avl = remove_int(avl, 24);
  avl = remove_int(avl, 375);
  avl = gpr_avl_add(avl, box(140), box(1287), nullptr);
  avl = remove_int(avl, 949);
  avl = gpr_avl_add(avl, box(301), box(1289), nullptr);
  avl = gpr_avl_add(avl, box(0), box(1290), nullptr);
  avl = remove_int(avl, 371);
  avl = remove_int(avl, 427);
  avl = remove_int(avl, 841);
  avl = remove_int(avl, 847);
  avl = gpr_avl_add(avl, box(814), box(1295), nullptr);
  avl = gpr_avl_add(avl, box(127), box(1296), nullptr);
  avl = gpr_avl_add(avl, box(279), box(1297), nullptr);
  avl = remove_int(avl, 669);
  avl = remove_int(avl, 541);
  avl = remove_int(avl, 275);
  avl = remove_int(avl, 299);
  avl = remove_int(avl, 552);
  avl = gpr_avl_add(avl, box(310), box(1303), nullptr);
  avl = gpr_avl_add(avl, box(304), box(1304), nullptr);
  avl = gpr_avl_add(avl, box(1), box(1305), nullptr);
  avl = gpr_avl_add(avl, box(339), box(1306), nullptr);
  avl = remove_int(avl, 570);
  avl = remove_int(avl, 752);
  avl = remove_int(avl, 552);
  avl = remove_int(avl, 442);
  avl = remove_int(avl, 639);
  avl = gpr_avl_add(avl, box(313), box(1312), nullptr);
  avl = remove_int(avl, 85);
  avl = gpr_avl_add(avl, box(964), box(1314), nullptr);
  avl = gpr_avl_add(avl, box(559), box(1315), nullptr);
  avl = remove_int(avl, 167);
  avl = gpr_avl_add(avl, box(866), box(1317), nullptr);
  avl = remove_int(avl, 275);
  avl = gpr_avl_add(avl, box(173), box(1319), nullptr);
  avl = gpr_avl_add(avl, box(765), box(1320), nullptr);
  avl = remove_int(avl, 883);
  avl = gpr_avl_add(avl, box(547), box(1322), nullptr);
  avl = gpr_avl_add(avl, box(847), box(1323), nullptr);
  avl = remove_int(avl, 817);
  avl = remove_int(avl, 850);
  avl = remove_int(avl, 718);
  avl = gpr_avl_add(avl, box(806), box(1327), nullptr);
  avl = gpr_avl_add(avl, box(360), box(1328), nullptr);
  avl = remove_int(avl, 991);
  avl = gpr_avl_add(avl, box(493), box(1330), nullptr);
  avl = remove_int(avl, 516);
  avl = gpr_avl_add(avl, box(361), box(1332), nullptr);
  avl = remove_int(avl, 355);
  avl = gpr_avl_add(avl, box(512), box(1334), nullptr);
  avl = gpr_avl_add(avl, box(191), box(1335), nullptr);
  avl = remove_int(avl, 703);
  avl = gpr_avl_add(avl, box(333), box(1337), nullptr);
  avl = remove_int(avl, 481);
  avl = gpr_avl_add(avl, box(501), box(1339), nullptr);
  avl = remove_int(avl, 532);
  avl = remove_int(avl, 510);
  avl = gpr_avl_add(avl, box(793), box(1342), nullptr);
  avl = gpr_avl_add(avl, box(234), box(1343), nullptr);
  avl = remove_int(avl, 159);
  avl = remove_int(avl, 429);
  avl = remove_int(avl, 728);
  avl = remove_int(avl, 288);
  avl = gpr_avl_add(avl, box(281), box(1348), nullptr);
  avl = gpr_avl_add(avl, box(702), box(1349), nullptr);
  avl = gpr_avl_add(avl, box(149), box(1350), nullptr);
  avl = remove_int(avl, 22);
  avl = remove_int(avl, 944);
  avl = remove_int(avl, 55);
  avl = remove_int(avl, 512);
  avl = remove_int(avl, 676);
  avl = remove_int(avl, 884);
  avl = gpr_avl_add(avl, box(246), box(1357), nullptr);
  avl = gpr_avl_add(avl, box(455), box(1358), nullptr);
  avl = remove_int(avl, 782);
  avl = remove_int(avl, 682);
  avl = gpr_avl_add(avl, box(243), box(1361), nullptr);
  avl = gpr_avl_add(avl, box(109), box(1362), nullptr);
  avl = gpr_avl_add(avl, box(452), box(1363), nullptr);
  avl = remove_int(avl, 151);
  avl = gpr_avl_add(avl, box(159), box(1365), nullptr);
  avl = remove_int(avl, 1023);
  avl = gpr_avl_add(avl, box(129), box(1367), nullptr);
  avl = gpr_avl_add(avl, box(537), box(1368), nullptr);
  avl = remove_int(avl, 321);
  avl = gpr_avl_add(avl, box(740), box(1370), nullptr);
  avl = remove_int(avl, 45);
  avl = remove_int(avl, 136);
  avl = gpr_avl_add(avl, box(229), box(1373), nullptr);
  avl = remove_int(avl, 772);
  avl = gpr_avl_add(avl, box(181), box(1375), nullptr);
  avl = remove_int(avl, 175);
  avl = gpr_avl_add(avl, box(817), box(1377), nullptr);
  avl = remove_int(avl, 956);
  avl = gpr_avl_add(avl, box(675), box(1379), nullptr);
  avl = gpr_avl_add(avl, box(375), box(1380), nullptr);
  avl = remove_int(avl, 384);
  avl = gpr_avl_add(avl, box(1016), box(1382), nullptr);
  avl = remove_int(avl, 295);
  avl = remove_int(avl, 697);
  avl = remove_int(avl, 554);
  avl = remove_int(avl, 590);
  avl = remove_int(avl, 1014);
  avl = gpr_avl_add(avl, box(890), box(1388), nullptr);
  avl = gpr_avl_add(avl, box(293), box(1389), nullptr);
  avl = remove_int(avl, 207);
  avl = remove_int(avl, 46);
  avl = gpr_avl_add(avl, box(899), box(1392), nullptr);
  avl = gpr_avl_add(avl, box(666), box(1393), nullptr);
  avl = gpr_avl_add(avl, box(85), box(1394), nullptr);
  avl = gpr_avl_add(avl, box(914), box(1395), nullptr);
  avl = gpr_avl_add(avl, box(128), box(1396), nullptr);
  avl = gpr_avl_add(avl, box(835), box(1397), nullptr);
  avl = gpr_avl_add(avl, box(787), box(1398), nullptr);
  avl = gpr_avl_add(avl, box(649), box(1399), nullptr);
  avl = gpr_avl_add(avl, box(723), box(1400), nullptr);
  avl = remove_int(avl, 874);
  avl = gpr_avl_add(avl, box(778), box(1402), nullptr);
  avl = gpr_avl_add(avl, box(1015), box(1403), nullptr);
  avl = gpr_avl_add(avl, box(59), box(1404), nullptr);
  avl = gpr_avl_add(avl, box(259), box(1405), nullptr);
  avl = gpr_avl_add(avl, box(758), box(1406), nullptr);
  avl = remove_int(avl, 648);
  avl = gpr_avl_add(avl, box(145), box(1408), nullptr);
  avl = gpr_avl_add(avl, box(440), box(1409), nullptr);
  avl = remove_int(avl, 608);
  avl = remove_int(avl, 690);
  avl = gpr_avl_add(avl, box(605), box(1412), nullptr);
  avl = remove_int(avl, 856);
  avl = remove_int(avl, 608);
  avl = gpr_avl_add(avl, box(829), box(1415), nullptr);
  avl = gpr_avl_add(avl, box(660), box(1416), nullptr);
  avl = remove_int(avl, 596);
  avl = gpr_avl_add(avl, box(519), box(1418), nullptr);
  avl = gpr_avl_add(avl, box(35), box(1419), nullptr);
  avl = gpr_avl_add(avl, box(871), box(1420), nullptr);
  avl = remove_int(avl, 845);
  avl = gpr_avl_add(avl, box(600), box(1422), nullptr);
  avl = gpr_avl_add(avl, box(215), box(1423), nullptr);
  avl = remove_int(avl, 761);
  avl = gpr_avl_add(avl, box(975), box(1425), nullptr);
  avl = remove_int(avl, 987);
  avl = gpr_avl_add(avl, box(58), box(1427), nullptr);
  avl = remove_int(avl, 119);
  avl = gpr_avl_add(avl, box(937), box(1429), nullptr);
  avl = gpr_avl_add(avl, box(372), box(1430), nullptr);
  avl = gpr_avl_add(avl, box(11), box(1431), nullptr);
  avl = gpr_avl_add(avl, box(398), box(1432), nullptr);
  avl = gpr_avl_add(avl, box(423), box(1433), nullptr);
  avl = remove_int(avl, 171);
  avl = gpr_avl_add(avl, box(473), box(1435), nullptr);
  avl = remove_int(avl, 752);
  avl = remove_int(avl, 625);
  avl = remove_int(avl, 764);
  avl = remove_int(avl, 49);
  avl = gpr_avl_add(avl, box(472), box(1440), nullptr);
  avl = remove_int(avl, 847);
  avl = remove_int(avl, 642);
  avl = remove_int(avl, 1004);
  avl = remove_int(avl, 795);
  avl = remove_int(avl, 465);
  avl = gpr_avl_add(avl, box(636), box(1446), nullptr);
  avl = remove_int(avl, 152);
  avl = gpr_avl_add(avl, box(61), box(1448), nullptr);
  avl = remove_int(avl, 929);
  avl = remove_int(avl, 9);
  avl = gpr_avl_add(avl, box(251), box(1451), nullptr);
  avl = gpr_avl_add(avl, box(672), box(1452), nullptr);
  avl = gpr_avl_add(avl, box(66), box(1453), nullptr);
  avl = remove_int(avl, 693);
  avl = remove_int(avl, 914);
  avl = remove_int(avl, 116);
  avl = remove_int(avl, 577);
  avl = gpr_avl_add(avl, box(618), box(1458), nullptr);
  avl = gpr_avl_add(avl, box(495), box(1459), nullptr);
  avl = remove_int(avl, 450);
  avl = gpr_avl_add(avl, box(533), box(1461), nullptr);
  avl = gpr_avl_add(avl, box(414), box(1462), nullptr);
  avl = remove_int(avl, 74);
  avl = remove_int(avl, 236);
  avl = gpr_avl_add(avl, box(707), box(1465), nullptr);
  avl = gpr_avl_add(avl, box(357), box(1466), nullptr);
  avl = gpr_avl_add(avl, box(1007), box(1467), nullptr);
  avl = gpr_avl_add(avl, box(811), box(1468), nullptr);
  avl = gpr_avl_add(avl, box(418), box(1469), nullptr);
  avl = gpr_avl_add(avl, box(164), box(1470), nullptr);
  avl = gpr_avl_add(avl, box(622), box(1471), nullptr);
  avl = remove_int(avl, 22);
  avl = remove_int(avl, 14);
  avl = remove_int(avl, 732);
  avl = remove_int(avl, 7);
  avl = remove_int(avl, 447);
  avl = gpr_avl_add(avl, box(221), box(1477), nullptr);
  avl = gpr_avl_add(avl, box(202), box(1478), nullptr);
  avl = gpr_avl_add(avl, box(312), box(1479), nullptr);
  avl = remove_int(avl, 274);
  avl = gpr_avl_add(avl, box(684), box(1481), nullptr);
  avl = gpr_avl_add(avl, box(954), box(1482), nullptr);
  avl = gpr_avl_add(avl, box(637), box(1483), nullptr);
  avl = remove_int(avl, 716);
  avl = gpr_avl_add(avl, box(198), box(1485), nullptr);
  avl = remove_int(avl, 340);
  avl = remove_int(avl, 137);
  avl = remove_int(avl, 995);
  avl = remove_int(avl, 1004);
  avl = gpr_avl_add(avl, box(661), box(1490), nullptr);
  avl = gpr_avl_add(avl, box(862), box(1491), nullptr);
  avl = remove_int(avl, 527);
  avl = gpr_avl_add(avl, box(945), box(1493), nullptr);
  avl = remove_int(avl, 355);
  avl = remove_int(avl, 144);
  avl = gpr_avl_add(avl, box(229), box(1496), nullptr);
  avl = gpr_avl_add(avl, box(237), box(1497), nullptr);
  avl = remove_int(avl, 471);
  avl = remove_int(avl, 901);
  avl = gpr_avl_add(avl, box(905), box(1500), nullptr);
  avl = remove_int(avl, 19);
  avl = remove_int(avl, 896);
  avl = remove_int(avl, 585);
  avl = remove_int(avl, 308);
  avl = gpr_avl_add(avl, box(547), box(1505), nullptr);
  avl = gpr_avl_add(avl, box(552), box(1506), nullptr);
  avl = gpr_avl_add(avl, box(30), box(1507), nullptr);
  avl = gpr_avl_add(avl, box(445), box(1508), nullptr);
  avl = remove_int(avl, 785);
  avl = remove_int(avl, 185);
  avl = gpr_avl_add(avl, box(405), box(1511), nullptr);
  avl = gpr_avl_add(avl, box(733), box(1512), nullptr);
  avl = gpr_avl_add(avl, box(573), box(1513), nullptr);
  avl = gpr_avl_add(avl, box(492), box(1514), nullptr);
  avl = gpr_avl_add(avl, box(343), box(1515), nullptr);
  avl = gpr_avl_add(avl, box(527), box(1516), nullptr);
  avl = gpr_avl_add(avl, box(596), box(1517), nullptr);
  avl = gpr_avl_add(avl, box(519), box(1518), nullptr);
  avl = remove_int(avl, 243);
  avl = remove_int(avl, 722);
  avl = gpr_avl_add(avl, box(772), box(1521), nullptr);
  avl = remove_int(avl, 152);
  avl = remove_int(avl, 305);
  avl = gpr_avl_add(avl, box(754), box(1524), nullptr);
  avl = gpr_avl_add(avl, box(373), box(1525), nullptr);
  avl = remove_int(avl, 995);
  avl = gpr_avl_add(avl, box(329), box(1527), nullptr);
  avl = remove_int(avl, 397);
  avl = gpr_avl_add(avl, box(884), box(1529), nullptr);
  avl = remove_int(avl, 329);
  avl = remove_int(avl, 240);
  avl = gpr_avl_add(avl, box(566), box(1532), nullptr);
  avl = gpr_avl_add(avl, box(232), box(1533), nullptr);
  avl = remove_int(avl, 993);
  avl = gpr_avl_add(avl, box(888), box(1535), nullptr);
  avl = remove_int(avl, 242);
  avl = gpr_avl_add(avl, box(941), box(1537), nullptr);
  avl = remove_int(avl, 415);
  avl = gpr_avl_add(avl, box(992), box(1539), nullptr);
  avl = remove_int(avl, 289);
  avl = gpr_avl_add(avl, box(60), box(1541), nullptr);
  avl = gpr_avl_add(avl, box(97), box(1542), nullptr);
  avl = remove_int(avl, 965);
  avl = remove_int(avl, 267);
  avl = remove_int(avl, 360);
  avl = gpr_avl_add(avl, box(5), box(1546), nullptr);
  avl = remove_int(avl, 429);
  avl = gpr_avl_add(avl, box(412), box(1548), nullptr);
  avl = remove_int(avl, 632);
  avl = remove_int(avl, 113);
  avl = gpr_avl_add(avl, box(48), box(1551), nullptr);
  avl = gpr_avl_add(avl, box(108), box(1552), nullptr);
  avl = gpr_avl_add(avl, box(750), box(1553), nullptr);
  avl = remove_int(avl, 188);
  avl = gpr_avl_add(avl, box(668), box(1555), nullptr);
  avl = remove_int(avl, 37);
  avl = remove_int(avl, 737);
  avl = gpr_avl_add(avl, box(93), box(1558), nullptr);
  avl = gpr_avl_add(avl, box(628), box(1559), nullptr);
  avl = gpr_avl_add(avl, box(480), box(1560), nullptr);
  avl = remove_int(avl, 958);
  avl = remove_int(avl, 565);
  avl = remove_int(avl, 32);
  avl = remove_int(avl, 1);
  avl = remove_int(avl, 335);
  avl = gpr_avl_add(avl, box(136), box(1566), nullptr);
  avl = gpr_avl_add(avl, box(469), box(1567), nullptr);
  avl = remove_int(avl, 349);
  avl = gpr_avl_add(avl, box(768), box(1569), nullptr);
  avl = gpr_avl_add(avl, box(915), box(1570), nullptr);
  avl = remove_int(avl, 1014);
  avl = gpr_avl_add(avl, box(117), box(1572), nullptr);
  avl = remove_int(avl, 62);
  avl = gpr_avl_add(avl, box(382), box(1574), nullptr);
  avl = remove_int(avl, 571);
  avl = gpr_avl_add(avl, box(655), box(1576), nullptr);
  avl = gpr_avl_add(avl, box(323), box(1577), nullptr);
  avl = remove_int(avl, 869);
  avl = remove_int(avl, 151);
  avl = gpr_avl_add(avl, box(1019), box(1580), nullptr);
  avl = gpr_avl_add(avl, box(984), box(1581), nullptr);
  avl = gpr_avl_add(avl, box(870), box(1582), nullptr);
  avl = gpr_avl_add(avl, box(376), box(1583), nullptr);
  avl = remove_int(avl, 625);
  avl = gpr_avl_add(avl, box(733), box(1585), nullptr);
  avl = remove_int(avl, 532);
  avl = remove_int(avl, 444);
  avl = gpr_avl_add(avl, box(428), box(1588), nullptr);
  avl = gpr_avl_add(avl, box(860), box(1589), nullptr);
  avl = gpr_avl_add(avl, box(173), box(1590), nullptr);
  avl = remove_int(avl, 649);
  avl = remove_int(avl, 913);
  avl = remove_int(avl, 1);
  avl = remove_int(avl, 304);
  avl = gpr_avl_add(avl, box(604), box(1595), nullptr);
  avl = gpr_avl_add(avl, box(639), box(1596), nullptr);
  avl = remove_int(avl, 431);
  avl = gpr_avl_add(avl, box(993), box(1598), nullptr);
  avl = remove_int(avl, 681);
  avl = remove_int(avl, 927);
  avl = gpr_avl_add(avl, box(87), box(1601), nullptr);
  avl = gpr_avl_add(avl, box(91), box(1602), nullptr);
  avl = remove_int(avl, 61);
  avl = remove_int(avl, 14);
  avl = remove_int(avl, 305);
  avl = remove_int(avl, 304);
  avl = remove_int(avl, 1016);
  avl = gpr_avl_add(avl, box(903), box(1608), nullptr);
  avl = gpr_avl_add(avl, box(951), box(1609), nullptr);
  avl = gpr_avl_add(avl, box(146), box(1610), nullptr);
  avl = gpr_avl_add(avl, box(482), box(1611), nullptr);
  avl = gpr_avl_add(avl, box(71), box(1612), nullptr);
  avl = remove_int(avl, 246);
  avl = remove_int(avl, 696);
  avl = gpr_avl_add(avl, box(636), box(1615), nullptr);
  avl = gpr_avl_add(avl, box(295), box(1616), nullptr);
  avl = remove_int(avl, 11);
  avl = remove_int(avl, 231);
  avl = gpr_avl_add(avl, box(905), box(1619), nullptr);
  avl = gpr_avl_add(avl, box(993), box(1620), nullptr);
  avl = gpr_avl_add(avl, box(433), box(1621), nullptr);
  avl = gpr_avl_add(avl, box(117), box(1622), nullptr);
  avl = gpr_avl_add(avl, box(467), box(1623), nullptr);
  avl = remove_int(avl, 419);
  avl = gpr_avl_add(avl, box(179), box(1625), nullptr);
  avl = remove_int(avl, 926);
  avl = remove_int(avl, 326);
  avl = gpr_avl_add(avl, box(551), box(1628), nullptr);
  avl = remove_int(avl, 14);
  avl = remove_int(avl, 476);
  avl = remove_int(avl, 823);
  avl = gpr_avl_add(avl, box(350), box(1632), nullptr);
  avl = gpr_avl_add(avl, box(133), box(1633), nullptr);
  avl = remove_int(avl, 906);
  avl = gpr_avl_add(avl, box(827), box(1635), nullptr);
  avl = gpr_avl_add(avl, box(201), box(1636), nullptr);
  avl = remove_int(avl, 124);
  avl = remove_int(avl, 662);
  avl = gpr_avl_add(avl, box(314), box(1639), nullptr);
  avl = gpr_avl_add(avl, box(986), box(1640), nullptr);
  avl = gpr_avl_add(avl, box(622), box(1641), nullptr);
  avl = remove_int(avl, 130);
  avl = gpr_avl_add(avl, box(861), box(1643), nullptr);
  avl = remove_int(avl, 497);
  avl = remove_int(avl, 905);
  avl = gpr_avl_add(avl, box(502), box(1646), nullptr);
  avl = remove_int(avl, 721);
  avl = gpr_avl_add(avl, box(514), box(1648), nullptr);
  avl = gpr_avl_add(avl, box(410), box(1649), nullptr);
  avl = remove_int(avl, 869);
  avl = remove_int(avl, 247);
  avl = gpr_avl_add(avl, box(450), box(1652), nullptr);
  avl = remove_int(avl, 364);
  avl = gpr_avl_add(avl, box(963), box(1654), nullptr);
  avl = gpr_avl_add(avl, box(146), box(1655), nullptr);
  avl = remove_int(avl, 147);
  avl = remove_int(avl, 789);
  avl = gpr_avl_add(avl, box(693), box(1658), nullptr);
  avl = gpr_avl_add(avl, box(959), box(1659), nullptr);
  avl = remove_int(avl, 478);
  avl = gpr_avl_add(avl, box(116), box(1661), nullptr);
  avl = gpr_avl_add(avl, box(520), box(1662), nullptr);
  avl = gpr_avl_add(avl, box(809), box(1663), nullptr);
  avl = gpr_avl_add(avl, box(667), box(1664), nullptr);
  avl = gpr_avl_add(avl, box(406), box(1665), nullptr);
  avl = remove_int(avl, 409);
  avl = gpr_avl_add(avl, box(558), box(1667), nullptr);
  avl = gpr_avl_add(avl, box(0), box(1668), nullptr);
  avl = gpr_avl_add(avl, box(948), box(1669), nullptr);
  avl = gpr_avl_add(avl, box(576), box(1670), nullptr);
  avl = remove_int(avl, 864);
  avl = remove_int(avl, 840);
  avl = remove_int(avl, 1001);
  avl = gpr_avl_add(avl, box(232), box(1674), nullptr);
  avl = remove_int(avl, 676);
  avl = remove_int(avl, 752);
  avl = remove_int(avl, 667);
  avl = remove_int(avl, 605);
  avl = gpr_avl_add(avl, box(258), box(1679), nullptr);
  avl = gpr_avl_add(avl, box(648), box(1680), nullptr);
  avl = gpr_avl_add(avl, box(761), box(1681), nullptr);
  avl = remove_int(avl, 293);
  avl = remove_int(avl, 893);
  avl = gpr_avl_add(avl, box(194), box(1684), nullptr);
  avl = remove_int(avl, 233);
  avl = gpr_avl_add(avl, box(888), box(1686), nullptr);
  avl = remove_int(avl, 470);
  avl = remove_int(avl, 703);
  avl = remove_int(avl, 190);
  avl = remove_int(avl, 359);
  avl = gpr_avl_add(avl, box(621), box(1691), nullptr);
  avl = remove_int(avl, 634);
  avl = remove_int(avl, 335);
  avl = gpr_avl_add(avl, box(718), box(1694), nullptr);
  avl = gpr_avl_add(avl, box(463), box(1695), nullptr);
  avl = gpr_avl_add(avl, box(233), box(1696), nullptr);
  avl = remove_int(avl, 376);
  avl = remove_int(avl, 496);
  avl = remove_int(avl, 819);
  avl = remove_int(avl, 38);
  avl = remove_int(avl, 436);
  avl = remove_int(avl, 102);
  avl = gpr_avl_add(avl, box(607), box(1703), nullptr);
  avl = remove_int(avl, 329);
  avl = gpr_avl_add(avl, box(716), box(1705), nullptr);
  avl = remove_int(avl, 639);
  avl = remove_int(avl, 775);
  avl = remove_int(avl, 578);
  avl = remove_int(avl, 464);
  avl = remove_int(avl, 679);
  avl = remove_int(avl, 615);
  avl = remove_int(avl, 104);
  avl = gpr_avl_add(avl, box(414), box(1713), nullptr);
  avl = gpr_avl_add(avl, box(212), box(1714), nullptr);
  avl = gpr_avl_add(avl, box(266), box(1715), nullptr);
  avl = gpr_avl_add(avl, box(238), box(1716), nullptr);
  avl = remove_int(avl, 153);
  avl = gpr_avl_add(avl, box(585), box(1718), nullptr);
  avl = remove_int(avl, 121);
  avl = gpr_avl_add(avl, box(534), box(1720), nullptr);
  avl = remove_int(avl, 579);
  avl = gpr_avl_add(avl, box(127), box(1722), nullptr);
  avl = gpr_avl_add(avl, box(399), box(1723), nullptr);
  avl = remove_int(avl, 417);
  avl = gpr_avl_add(avl, box(978), box(1725), nullptr);
  avl = gpr_avl_add(avl, box(768), box(1726), nullptr);
  avl = remove_int(avl, 985);
  avl = gpr_avl_add(avl, box(536), box(1728), nullptr);
  avl = gpr_avl_add(avl, box(449), box(1729), nullptr);
  avl = gpr_avl_add(avl, box(586), box(1730), nullptr);
  avl = remove_int(avl, 998);
  avl = remove_int(avl, 394);
  avl = remove_int(avl, 141);
  avl = gpr_avl_add(avl, box(889), box(1734), nullptr);
  avl = gpr_avl_add(avl, box(871), box(1735), nullptr);
  avl = gpr_avl_add(avl, box(76), box(1736), nullptr);
  avl = gpr_avl_add(avl, box(549), box(1737), nullptr);
  avl = gpr_avl_add(avl, box(757), box(1738), nullptr);
  avl = remove_int(avl, 908);
  avl = gpr_avl_add(avl, box(789), box(1740), nullptr);
  avl = remove_int(avl, 224);
  avl = gpr_avl_add(avl, box(407), box(1742), nullptr);
  avl = gpr_avl_add(avl, box(381), box(1743), nullptr);
  avl = gpr_avl_add(avl, box(561), box(1744), nullptr);
  avl = gpr_avl_add(avl, box(667), box(1745), nullptr);
  avl = gpr_avl_add(avl, box(522), box(1746), nullptr);
  avl = gpr_avl_add(avl, box(948), box(1747), nullptr);
  avl = remove_int(avl, 770);
  avl = gpr_avl_add(avl, box(872), box(1749), nullptr);
  avl = gpr_avl_add(avl, box(327), box(1750), nullptr);
  avl = remove_int(avl, 10);
  avl = gpr_avl_add(avl, box(122), box(1752), nullptr);
  avl = remove_int(avl, 606);
  avl = gpr_avl_add(avl, box(485), box(1754), nullptr);
  avl = remove_int(avl, 6);
  avl = gpr_avl_add(avl, box(329), box(1756), nullptr);
  avl = gpr_avl_add(avl, box(783), box(1757), nullptr);
  avl = remove_int(avl, 416);
  avl = gpr_avl_add(avl, box(656), box(1759), nullptr);
  avl = gpr_avl_add(avl, box(971), box(1760), nullptr);
  avl = gpr_avl_add(avl, box(77), box(1761), nullptr);
  avl = gpr_avl_add(avl, box(942), box(1762), nullptr);
  avl = remove_int(avl, 361);
  avl = gpr_avl_add(avl, box(66), box(1764), nullptr);
  avl = gpr_avl_add(avl, box(299), box(1765), nullptr);
  avl = gpr_avl_add(avl, box(929), box(1766), nullptr);
  avl = gpr_avl_add(avl, box(797), box(1767), nullptr);
  avl = remove_int(avl, 869);
  avl = remove_int(avl, 907);
  avl = gpr_avl_add(avl, box(870), box(1770), nullptr);
  avl = remove_int(avl, 580);
  avl = remove_int(avl, 120);
  avl = gpr_avl_add(avl, box(913), box(1773), nullptr);
  avl = remove_int(avl, 480);
  avl = gpr_avl_add(avl, box(489), box(1775), nullptr);
  avl = remove_int(avl, 845);
  avl = gpr_avl_add(avl, box(896), box(1777), nullptr);
  avl = remove_int(avl, 567);
  avl = remove_int(avl, 427);
  avl = gpr_avl_add(avl, box(443), box(1780), nullptr);
  avl = gpr_avl_add(avl, box(3), box(1781), nullptr);
  avl = remove_int(avl, 12);
  avl = gpr_avl_add(avl, box(376), box(1783), nullptr);
  avl = gpr_avl_add(avl, box(155), box(1784), nullptr);
  avl = gpr_avl_add(avl, box(188), box(1785), nullptr);
  avl = gpr_avl_add(avl, box(149), box(1786), nullptr);
  avl = gpr_avl_add(avl, box(178), box(1787), nullptr);
  avl = remove_int(avl, 84);
  avl = gpr_avl_add(avl, box(805), box(1789), nullptr);
  avl = gpr_avl_add(avl, box(612), box(1790), nullptr);
  avl = remove_int(avl, 991);
  avl = gpr_avl_add(avl, box(837), box(1792), nullptr);
  avl = remove_int(avl, 173);
  avl = remove_int(avl, 72);
  avl = gpr_avl_add(avl, box(1014), box(1795), nullptr);
  avl = remove_int(avl, 303);
  avl = gpr_avl_add(avl, box(865), box(1797), nullptr);
  avl = gpr_avl_add(avl, box(793), box(1798), nullptr);
  avl = remove_int(avl, 173);
  avl = remove_int(avl, 477);
  avl = gpr_avl_add(avl, box(950), box(1801), nullptr);
  avl = gpr_avl_add(avl, box(105), box(1802), nullptr);
  avl = gpr_avl_add(avl, box(895), box(1803), nullptr);
  avl = gpr_avl_add(avl, box(171), box(1804), nullptr);
  avl = gpr_avl_add(avl, box(753), box(1805), nullptr);
  avl = gpr_avl_add(avl, box(946), box(1806), nullptr);
  avl = remove_int(avl, 194);
  avl = remove_int(avl, 559);
  avl = remove_int(avl, 116);
  avl = gpr_avl_add(avl, box(968), box(1810), nullptr);
  avl = remove_int(avl, 124);
  avl = remove_int(avl, 99);
  avl = gpr_avl_add(avl, box(563), box(1813), nullptr);
  avl = remove_int(avl, 182);
  avl = gpr_avl_add(avl, box(816), box(1815), nullptr);
  avl = remove_int(avl, 73);
  avl = remove_int(avl, 261);
  avl = gpr_avl_add(avl, box(847), box(1818), nullptr);
  avl = gpr_avl_add(avl, box(368), box(1819), nullptr);
  avl = gpr_avl_add(avl, box(808), box(1820), nullptr);
  avl = gpr_avl_add(avl, box(779), box(1821), nullptr);
  avl = remove_int(avl, 818);
  avl = gpr_avl_add(avl, box(466), box(1823), nullptr);
  avl = remove_int(avl, 316);
  avl = gpr_avl_add(avl, box(986), box(1825), nullptr);
  avl = gpr_avl_add(avl, box(688), box(1826), nullptr);
  avl = gpr_avl_add(avl, box(509), box(1827), nullptr);
  avl = gpr_avl_add(avl, box(51), box(1828), nullptr);
  avl = remove_int(avl, 655);
  avl = remove_int(avl, 785);
  avl = remove_int(avl, 893);
  avl = gpr_avl_add(avl, box(167), box(1832), nullptr);
  avl = remove_int(avl, 13);
  avl = remove_int(avl, 263);
  avl = gpr_avl_add(avl, box(1009), box(1835), nullptr);
  avl = remove_int(avl, 480);
  avl = remove_int(avl, 778);
  avl = remove_int(avl, 713);
  avl = remove_int(avl, 628);
  avl = gpr_avl_add(avl, box(803), box(1840), nullptr);
  avl = remove_int(avl, 267);
  avl = gpr_avl_add(avl, box(676), box(1842), nullptr);
  avl = gpr_avl_add(avl, box(231), box(1843), nullptr);
  avl = gpr_avl_add(avl, box(824), box(1844), nullptr);
  avl = remove_int(avl, 961);
  avl = gpr_avl_add(avl, box(311), box(1846), nullptr);
  avl = gpr_avl_add(avl, box(420), box(1847), nullptr);
  avl = gpr_avl_add(avl, box(960), box(1848), nullptr);
  avl = gpr_avl_add(avl, box(468), box(1849), nullptr);
  avl = gpr_avl_add(avl, box(815), box(1850), nullptr);
  avl = remove_int(avl, 247);
  avl = remove_int(avl, 194);
  avl = gpr_avl_add(avl, box(546), box(1853), nullptr);
  avl = remove_int(avl, 222);
  avl = remove_int(avl, 914);
  avl = remove_int(avl, 741);
  avl = gpr_avl_add(avl, box(470), box(1857), nullptr);
  avl = gpr_avl_add(avl, box(933), box(1858), nullptr);
  avl = gpr_avl_add(avl, box(97), box(1859), nullptr);
  avl = remove_int(avl, 564);
  avl = remove_int(avl, 295);
  avl = gpr_avl_add(avl, box(864), box(1862), nullptr);
  avl = remove_int(avl, 329);
  avl = gpr_avl_add(avl, box(124), box(1864), nullptr);
  avl = gpr_avl_add(avl, box(1000), box(1865), nullptr);
  avl = gpr_avl_add(avl, box(228), box(1866), nullptr);
  avl = gpr_avl_add(avl, box(187), box(1867), nullptr);
  avl = remove_int(avl, 224);
  avl = remove_int(avl, 306);
  avl = remove_int(avl, 884);
  avl = gpr_avl_add(avl, box(449), box(1871), nullptr);
  avl = gpr_avl_add(avl, box(353), box(1872), nullptr);
  avl = gpr_avl_add(avl, box(994), box(1873), nullptr);
  avl = gpr_avl_add(avl, box(596), box(1874), nullptr);
  avl = gpr_avl_add(avl, box(996), box(1875), nullptr);
  avl = gpr_avl_add(avl, box(101), box(1876), nullptr);
  avl = gpr_avl_add(avl, box(1012), box(1877), nullptr);
  avl = gpr_avl_add(avl, box(982), box(1878), nullptr);
  avl = gpr_avl_add(avl, box(742), box(1879), nullptr);
  avl = remove_int(avl, 92);
  avl = remove_int(avl, 1022);
  avl = gpr_avl_add(avl, box(941), box(1882), nullptr);
  avl = remove_int(avl, 742);
  avl = remove_int(avl, 919);
  avl = gpr_avl_add(avl, box(588), box(1885), nullptr);
  avl = remove_int(avl, 221);
  avl = gpr_avl_add(avl, box(356), box(1887), nullptr);
  avl = gpr_avl_add(avl, box(932), box(1888), nullptr);
  avl = remove_int(avl, 837);
  avl = gpr_avl_add(avl, box(394), box(1890), nullptr);
  avl = gpr_avl_add(avl, box(642), box(1891), nullptr);
  avl = gpr_avl_add(avl, box(52), box(1892), nullptr);
  avl = gpr_avl_add(avl, box(437), box(1893), nullptr);
  avl = gpr_avl_add(avl, box(948), box(1894), nullptr);
  avl = gpr_avl_add(avl, box(93), box(1895), nullptr);
  avl = remove_int(avl, 873);
  avl = remove_int(avl, 336);
  avl = remove_int(avl, 277);
  avl = remove_int(avl, 932);
  avl = gpr_avl_add(avl, box(80), box(1900), nullptr);
  avl = gpr_avl_add(avl, box(952), box(1901), nullptr);
  avl = gpr_avl_add(avl, box(510), box(1902), nullptr);
  avl = remove_int(avl, 876);
  avl = remove_int(avl, 612);
  avl = gpr_avl_add(avl, box(923), box(1905), nullptr);
  avl = gpr_avl_add(avl, box(475), box(1906), nullptr);
  avl = remove_int(avl, 478);
  avl = remove_int(avl, 148);
  avl = gpr_avl_add(avl, box(538), box(1909), nullptr);
  avl = remove_int(avl, 47);
  avl = gpr_avl_add(avl, box(89), box(1911), nullptr);
  avl = remove_int(avl, 723);
  avl = gpr_avl_add(avl, box(687), box(1913), nullptr);
  avl = gpr_avl_add(avl, box(480), box(1914), nullptr);
  avl = gpr_avl_add(avl, box(149), box(1915), nullptr);
  avl = remove_int(avl, 68);
  avl = remove_int(avl, 862);
  avl = remove_int(avl, 363);
  avl = gpr_avl_add(avl, box(996), box(1919), nullptr);
  avl = remove_int(avl, 380);
  avl = gpr_avl_add(avl, box(957), box(1921), nullptr);
  avl = remove_int(avl, 413);
  avl = gpr_avl_add(avl, box(360), box(1923), nullptr);
  avl = gpr_avl_add(avl, box(304), box(1924), nullptr);
  avl = gpr_avl_add(avl, box(634), box(1925), nullptr);
  avl = gpr_avl_add(avl, box(506), box(1926), nullptr);
  avl = remove_int(avl, 248);
  avl = gpr_avl_add(avl, box(124), box(1928), nullptr);
  avl = gpr_avl_add(avl, box(181), box(1929), nullptr);
  avl = remove_int(avl, 507);
  avl = gpr_avl_add(avl, box(141), box(1931), nullptr);
  avl = remove_int(avl, 409);
  avl = remove_int(avl, 129);
  avl = remove_int(avl, 694);
  avl = remove_int(avl, 723);
  avl = gpr_avl_add(avl, box(998), box(1936), nullptr);
  avl = gpr_avl_add(avl, box(906), box(1937), nullptr);
  avl = gpr_avl_add(avl, box(44), box(1938), nullptr);
  avl = remove_int(avl, 949);
  avl = remove_int(avl, 117);
  avl = gpr_avl_add(avl, box(700), box(1941), nullptr);
  avl = gpr_avl_add(avl, box(258), box(1942), nullptr);
  avl = remove_int(avl, 828);
  avl = gpr_avl_add(avl, box(860), box(1944), nullptr);
  avl = gpr_avl_add(avl, box(987), box(1945), nullptr);
  avl = gpr_avl_add(avl, box(316), box(1946), nullptr);
  avl = gpr_avl_add(avl, box(919), box(1947), nullptr);
  avl = remove_int(avl, 84);
  avl = gpr_avl_add(avl, box(473), box(1949), nullptr);
  avl = remove_int(avl, 127);
  avl = remove_int(avl, 829);
  avl = remove_int(avl, 829);
  avl = gpr_avl_add(avl, box(488), box(1953), nullptr);
  avl = gpr_avl_add(avl, box(954), box(1954), nullptr);
  avl = remove_int(avl, 198);
  avl = remove_int(avl, 972);
  avl = remove_int(avl, 670);
  avl = gpr_avl_add(avl, box(822), box(1958), nullptr);
  avl = remove_int(avl, 589);
  avl = remove_int(avl, 459);
  avl = gpr_avl_add(avl, box(1003), box(1961), nullptr);
  avl = gpr_avl_add(avl, box(657), box(1962), nullptr);
  avl = gpr_avl_add(avl, box(477), box(1963), nullptr);
  avl = gpr_avl_add(avl, box(923), box(1964), nullptr);
  avl = remove_int(avl, 496);
  avl = remove_int(avl, 99);
  avl = gpr_avl_add(avl, box(127), box(1967), nullptr);
  avl = gpr_avl_add(avl, box(1013), box(1968), nullptr);
  avl = gpr_avl_add(avl, box(778), box(1969), nullptr);
  avl = remove_int(avl, 5);
  avl = remove_int(avl, 990);
  avl = remove_int(avl, 850);
  avl = remove_int(avl, 160);
  avl = remove_int(avl, 86);
  avl = gpr_avl_add(avl, box(283), box(1975), nullptr);
  avl = remove_int(avl, 278);
  avl = remove_int(avl, 297);
  avl = remove_int(avl, 137);
  avl = remove_int(avl, 653);
  avl = gpr_avl_add(avl, box(702), box(1980), nullptr);
  avl = remove_int(avl, 63);
  avl = remove_int(avl, 427);
  avl = remove_int(avl, 706);
  avl = remove_int(avl, 806);
  avl = gpr_avl_add(avl, box(335), box(1985), nullptr);
  avl = gpr_avl_add(avl, box(412), box(1986), nullptr);
  avl = remove_int(avl, 766);
  avl = remove_int(avl, 937);
  avl = remove_int(avl, 886);
  avl = remove_int(avl, 652);
  avl = gpr_avl_add(avl, box(545), box(1991), nullptr);
  avl = gpr_avl_add(avl, box(408), box(1992), nullptr);
  avl = gpr_avl_add(avl, box(841), box(1993), nullptr);
  avl = remove_int(avl, 593);
  avl = gpr_avl_add(avl, box(582), box(1995), nullptr);
  avl = gpr_avl_add(avl, box(597), box(1996), nullptr);
  avl = remove_int(avl, 49);
  avl = remove_int(avl, 835);
  avl = gpr_avl_add(avl, box(417), box(1999), nullptr);
  avl = gpr_avl_add(avl, box(191), box(2000), nullptr);
  avl = remove_int(avl, 406);
  avl = gpr_avl_add(avl, box(30), box(2002), nullptr);
  avl = remove_int(avl, 841);
  avl = remove_int(avl, 50);
  avl = gpr_avl_add(avl, box(967), box(2005), nullptr);
  avl = gpr_avl_add(avl, box(849), box(2006), nullptr);
  avl = remove_int(avl, 608);
  avl = gpr_avl_add(avl, box(306), box(2008), nullptr);
  avl = remove_int(avl, 779);
  avl = gpr_avl_add(avl, box(897), box(2010), nullptr);
  avl = gpr_avl_add(avl, box(147), box(2011), nullptr);
  avl = remove_int(avl, 982);
  avl = gpr_avl_add(avl, box(470), box(2013), nullptr);
  avl = remove_int(avl, 951);
  avl = gpr_avl_add(avl, box(388), box(2015), nullptr);
  avl = remove_int(avl, 616);
  avl = remove_int(avl, 721);
  avl = remove_int(avl, 942);
  avl = remove_int(avl, 589);
  avl = gpr_avl_add(avl, box(218), box(2020), nullptr);
  avl = remove_int(avl, 671);
  avl = gpr_avl_add(avl, box(1020), box(2022), nullptr);
  avl = remove_int(avl, 277);
  avl = gpr_avl_add(avl, box(681), box(2024), nullptr);
  avl = gpr_avl_add(avl, box(179), box(2025), nullptr);
  avl = gpr_avl_add(avl, box(370), box(2026), nullptr);
  avl = gpr_avl_add(avl, box(0), box(2027), nullptr);
  avl = remove_int(avl, 523);
  avl = gpr_avl_add(avl, box(99), box(2029), nullptr);
  avl = gpr_avl_add(avl, box(334), box(2030), nullptr);
  avl = gpr_avl_add(avl, box(569), box(2031), nullptr);
  avl = gpr_avl_add(avl, box(257), box(2032), nullptr);
  avl = remove_int(avl, 572);
  avl = gpr_avl_add(avl, box(805), box(2034), nullptr);
  avl = gpr_avl_add(avl, box(143), box(2035), nullptr);
  avl = gpr_avl_add(avl, box(670), box(2036), nullptr);
  avl = remove_int(avl, 42);
  avl = gpr_avl_add(avl, box(46), box(2038), nullptr);
  avl = remove_int(avl, 970);
  avl = gpr_avl_add(avl, box(353), box(2040), nullptr);
  avl = remove_int(avl, 258);
  avl = gpr_avl_add(avl, box(451), box(2042), nullptr);
  avl = gpr_avl_add(avl, box(28), box(2043), nullptr);
  avl = gpr_avl_add(avl, box(729), box(2044), nullptr);
  avl = gpr_avl_add(avl, box(401), box(2045), nullptr);
  avl = gpr_avl_add(avl, box(614), box(2046), nullptr);
  avl = remove_int(avl, 990);
  avl = remove_int(avl, 212);
  avl = remove_int(avl, 22);
  avl = remove_int(avl, 677);
  avl = gpr_avl_add(avl, box(1016), box(2051), nullptr);
  avl = gpr_avl_add(avl, box(980), box(2052), nullptr);
  avl = gpr_avl_add(avl, box(990), box(2053), nullptr);
  avl = gpr_avl_add(avl, box(355), box(2054), nullptr);
  avl = remove_int(avl, 730);
  avl = remove_int(avl, 37);
  avl = gpr_avl_add(avl, box(407), box(2057), nullptr);
  avl = gpr_avl_add(avl, box(222), box(2058), nullptr);
  avl = gpr_avl_add(avl, box(439), box(2059), nullptr);
  avl = gpr_avl_add(avl, box(563), box(2060), nullptr);
  avl = remove_int(avl, 992);
  avl = remove_int(avl, 786);
  avl = gpr_avl_add(avl, box(1), box(2063), nullptr);
  avl = gpr_avl_add(avl, box(473), box(2064), nullptr);
  avl = gpr_avl_add(avl, box(992), box(2065), nullptr);
  avl = remove_int(avl, 190);
  avl = remove_int(avl, 450);
  avl = remove_int(avl, 1020);
  avl = remove_int(avl, 149);
  avl = gpr_avl_add(avl, box(329), box(2070), nullptr);
  avl = gpr_avl_add(avl, box(35), box(2071), nullptr);
  avl = remove_int(avl, 843);
  avl = gpr_avl_add(avl, box(855), box(2073), nullptr);
  avl = remove_int(avl, 878);
  avl = gpr_avl_add(avl, box(993), box(2075), nullptr);
  avl = gpr_avl_add(avl, box(87), box(2076), nullptr);
  avl = gpr_avl_add(avl, box(572), box(2077), nullptr);
  avl = remove_int(avl, 896);
  avl = gpr_avl_add(avl, box(849), box(2079), nullptr);
  avl = remove_int(avl, 597);
  avl = gpr_avl_add(avl, box(472), box(2081), nullptr);
  avl = remove_int(avl, 778);
  avl = remove_int(avl, 934);
  avl = remove_int(avl, 314);
  avl = gpr_avl_add(avl, box(101), box(2085), nullptr);
  avl = remove_int(avl, 938);
  avl = remove_int(avl, 1010);
  avl = gpr_avl_add(avl, box(579), box(2088), nullptr);
  avl = remove_int(avl, 798);
  avl = remove_int(avl, 88);
  avl = gpr_avl_add(avl, box(851), box(2091), nullptr);
  avl = remove_int(avl, 705);
  avl = gpr_avl_add(avl, box(26), box(2093), nullptr);
  avl = remove_int(avl, 973);
  avl = gpr_avl_add(avl, box(923), box(2095), nullptr);
  avl = remove_int(avl, 668);
  avl = gpr_avl_add(avl, box(310), box(2097), nullptr);
  avl = gpr_avl_add(avl, box(269), box(2098), nullptr);
  avl = remove_int(avl, 173);
  avl = gpr_avl_add(avl, box(279), box(2100), nullptr);
  avl = remove_int(avl, 203);
  avl = gpr_avl_add(avl, box(411), box(2102), nullptr);
  avl = remove_int(avl, 950);
  avl = gpr_avl_add(avl, box(6), box(2104), nullptr);
  avl = remove_int(avl, 400);
  avl = remove_int(avl, 468);
  avl = remove_int(avl, 271);
  avl = gpr_avl_add(avl, box(627), box(2108), nullptr);
  avl = remove_int(avl, 727);
  avl = remove_int(avl, 148);
  avl = remove_int(avl, 98);
  avl = remove_int(avl, 997);
  avl = remove_int(avl, 215);
  avl = remove_int(avl, 628);
  avl = remove_int(avl, 826);
  avl = remove_int(avl, 664);
  avl = gpr_avl_add(avl, box(76), box(2117), nullptr);
  avl = remove_int(avl, 194);
  avl = remove_int(avl, 18);
  avl = gpr_avl_add(avl, box(727), box(2120), nullptr);
  avl = remove_int(avl, 295);
  avl = gpr_avl_add(avl, box(645), box(2122), nullptr);
  avl = remove_int(avl, 321);
  avl = remove_int(avl, 863);
  avl = gpr_avl_add(avl, box(824), box(2125), nullptr);
  avl = gpr_avl_add(avl, box(651), box(2126), nullptr);
  avl = gpr_avl_add(avl, box(804), box(2127), nullptr);
  avl = remove_int(avl, 307);
  avl = gpr_avl_add(avl, box(867), box(2129), nullptr);
  avl = remove_int(avl, 384);
  avl = gpr_avl_add(avl, box(819), box(2131), nullptr);
  avl = remove_int(avl, 674);
  avl = gpr_avl_add(avl, box(76), box(2133), nullptr);
  avl = remove_int(avl, 898);
  avl = gpr_avl_add(avl, box(45), box(2135), nullptr);
  avl = gpr_avl_add(avl, box(512), box(2136), nullptr);
  avl = remove_int(avl, 773);
  avl = remove_int(avl, 907);
  avl = remove_int(avl, 382);
  avl = remove_int(avl, 95);
  avl = remove_int(avl, 734);
  avl = remove_int(avl, 81);
  avl = gpr_avl_add(avl, box(348), box(2143), nullptr);
  avl = remove_int(avl, 509);
  avl = remove_int(avl, 301);
  avl = gpr_avl_add(avl, box(861), box(2146), nullptr);
  avl = gpr_avl_add(avl, box(918), box(2147), nullptr);
  avl = remove_int(avl, 992);
  avl = gpr_avl_add(avl, box(356), box(2149), nullptr);
  avl = remove_int(avl, 64);
  avl = remove_int(avl, 444);
  avl = remove_int(avl, 741);
  avl = gpr_avl_add(avl, box(710), box(2153), nullptr);
  avl = gpr_avl_add(avl, box(264), box(2154), nullptr);
  avl = remove_int(avl, 347);
  avl = remove_int(avl, 250);
  avl = gpr_avl_add(avl, box(82), box(2157), nullptr);
  avl = gpr_avl_add(avl, box(571), box(2158), nullptr);
  avl = remove_int(avl, 721);
  avl = remove_int(avl, 622);
  avl = gpr_avl_add(avl, box(950), box(2161), nullptr);
  avl = gpr_avl_add(avl, box(94), box(2162), nullptr);
  avl = remove_int(avl, 970);
  avl = gpr_avl_add(avl, box(815), box(2164), nullptr);
  avl = remove_int(avl, 930);
  avl = remove_int(avl, 703);
  avl = gpr_avl_add(avl, box(432), box(2167), nullptr);
  avl = remove_int(avl, 544);
  avl = gpr_avl_add(avl, box(21), box(2169), nullptr);
  avl = gpr_avl_add(avl, box(186), box(2170), nullptr);
  avl = remove_int(avl, 143);
  avl = gpr_avl_add(avl, box(425), box(2172), nullptr);
  avl = remove_int(avl, 769);
  avl = gpr_avl_add(avl, box(656), box(2174), nullptr);
  avl = remove_int(avl, 29);
  avl = gpr_avl_add(avl, box(464), box(2176), nullptr);
  avl = remove_int(avl, 713);
  avl = gpr_avl_add(avl, box(800), box(2178), nullptr);
  avl = remove_int(avl, 621);
  avl = gpr_avl_add(avl, box(962), box(2180), nullptr);
  avl = remove_int(avl, 448);
  avl = gpr_avl_add(avl, box(878), box(2182), nullptr);
  avl = remove_int(avl, 39);
  avl = remove_int(avl, 999);
  avl = gpr_avl_add(avl, box(182), box(2185), nullptr);
  avl = gpr_avl_add(avl, box(429), box(2186), nullptr);
  avl = gpr_avl_add(avl, box(598), box(2187), nullptr);
  avl = remove_int(avl, 551);
  avl = gpr_avl_add(avl, box(827), box(2189), nullptr);
  avl = gpr_avl_add(avl, box(809), box(2190), nullptr);
  avl = remove_int(avl, 438);
  avl = remove_int(avl, 811);
  avl = gpr_avl_add(avl, box(808), box(2193), nullptr);
  avl = gpr_avl_add(avl, box(788), box(2194), nullptr);
  avl = remove_int(avl, 156);
  avl = gpr_avl_add(avl, box(933), box(2196), nullptr);
  avl = gpr_avl_add(avl, box(344), box(2197), nullptr);
  avl = remove_int(avl, 460);
  avl = gpr_avl_add(avl, box(161), box(2199), nullptr);
  avl = gpr_avl_add(avl, box(444), box(2200), nullptr);
  avl = remove_int(avl, 597);
  avl = remove_int(avl, 668);
  avl = gpr_avl_add(avl, box(703), box(2203), nullptr);
  avl = remove_int(avl, 515);
  avl = gpr_avl_add(avl, box(380), box(2205), nullptr);
  avl = gpr_avl_add(avl, box(338), box(2206), nullptr);
  avl = remove_int(avl, 550);
  avl = remove_int(avl, 946);
  avl = remove_int(avl, 714);
  avl = remove_int(avl, 739);
  avl = gpr_avl_add(avl, box(413), box(2211), nullptr);
  avl = remove_int(avl, 450);
  avl = gpr_avl_add(avl, box(411), box(2213), nullptr);
  avl = gpr_avl_add(avl, box(117), box(2214), nullptr);
  avl = gpr_avl_add(avl, box(322), box(2215), nullptr);
  avl = gpr_avl_add(avl, box(915), box(2216), nullptr);
  avl = gpr_avl_add(avl, box(410), box(2217), nullptr);
  avl = gpr_avl_add(avl, box(66), box(2218), nullptr);
  avl = remove_int(avl, 756);
  avl = remove_int(avl, 596);
  avl = gpr_avl_add(avl, box(882), box(2221), nullptr);
  avl = gpr_avl_add(avl, box(930), box(2222), nullptr);
  avl = gpr_avl_add(avl, box(36), box(2223), nullptr);
  avl = remove_int(avl, 742);
  avl = gpr_avl_add(avl, box(539), box(2225), nullptr);
  avl = gpr_avl_add(avl, box(596), box(2226), nullptr);
  avl = remove_int(avl, 82);
  avl = remove_int(avl, 686);
  avl = remove_int(avl, 933);
  avl = remove_int(avl, 42);
  avl = remove_int(avl, 340);
  avl = gpr_avl_add(avl, box(126), box(2232), nullptr);
  avl = gpr_avl_add(avl, box(493), box(2233), nullptr);
  avl = gpr_avl_add(avl, box(839), box(2234), nullptr);
  avl = remove_int(avl, 774);
  avl = gpr_avl_add(avl, box(337), box(2236), nullptr);
  avl = remove_int(avl, 322);
  avl = gpr_avl_add(avl, box(16), box(2238), nullptr);
  avl = remove_int(avl, 73);
  avl = remove_int(avl, 85);
  avl = remove_int(avl, 191);
  avl = remove_int(avl, 541);
  avl = gpr_avl_add(avl, box(704), box(2243), nullptr);
  avl = remove_int(avl, 767);
  avl = remove_int(avl, 1006);
  avl = remove_int(avl, 844);
  avl = remove_int(avl, 742);
  avl = gpr_avl_add(avl, box(48), box(2248), nullptr);
  avl = gpr_avl_add(avl, box(138), box(2249), nullptr);
  avl = gpr_avl_add(avl, box(437), box(2250), nullptr);
  avl = gpr_avl_add(avl, box(275), box(2251), nullptr);
  avl = remove_int(avl, 520);
  avl = gpr_avl_add(avl, box(1019), box(2253), nullptr);
  avl = remove_int(avl, 955);
  avl = gpr_avl_add(avl, box(270), box(2255), nullptr);
  avl = remove_int(avl, 680);
  avl = remove_int(avl, 698);
  avl = gpr_avl_add(avl, box(735), box(2258), nullptr);
  avl = gpr_avl_add(avl, box(400), box(2259), nullptr);
  avl = remove_int(avl, 991);
  avl = gpr_avl_add(avl, box(263), box(2261), nullptr);
  avl = remove_int(avl, 704);
  avl = gpr_avl_add(avl, box(757), box(2263), nullptr);
  avl = remove_int(avl, 194);
  avl = remove_int(avl, 616);
  avl = remove_int(avl, 784);
  avl = gpr_avl_add(avl, box(382), box(2267), nullptr);
  avl = gpr_avl_add(avl, box(464), box(2268), nullptr);
  avl = gpr_avl_add(avl, box(817), box(2269), nullptr);
  avl = remove_int(avl, 445);
  avl = gpr_avl_add(avl, box(412), box(2271), nullptr);
  avl = remove_int(avl, 525);
  avl = gpr_avl_add(avl, box(299), box(2273), nullptr);
  avl = gpr_avl_add(avl, box(464), box(2274), nullptr);
  avl = gpr_avl_add(avl, box(715), box(2275), nullptr);
  avl = remove_int(avl, 58);
  avl = remove_int(avl, 218);
  avl = gpr_avl_add(avl, box(961), box(2278), nullptr);
  avl = gpr_avl_add(avl, box(491), box(2279), nullptr);
  avl = remove_int(avl, 846);
  avl = gpr_avl_add(avl, box(762), box(2281), nullptr);
  avl = remove_int(avl, 974);
  avl = remove_int(avl, 887);
  avl = gpr_avl_add(avl, box(498), box(2284), nullptr);
  avl = remove_int(avl, 810);
  avl = remove_int(avl, 743);
  avl = remove_int(avl, 22);
  avl = remove_int(avl, 284);
  avl = gpr_avl_add(avl, box(482), box(2289), nullptr);
  avl = gpr_avl_add(avl, box(1021), box(2290), nullptr);
  avl = remove_int(avl, 155);
  avl = remove_int(avl, 128);
  avl = gpr_avl_add(avl, box(819), box(2293), nullptr);
  avl = gpr_avl_add(avl, box(324), box(2294), nullptr);
  avl = remove_int(avl, 196);
  avl = remove_int(avl, 370);
  avl = remove_int(avl, 753);
  avl = remove_int(avl, 56);
  avl = remove_int(avl, 735);
  avl = gpr_avl_add(avl, box(272), box(2300), nullptr);
  avl = gpr_avl_add(avl, box(474), box(2301), nullptr);
  avl = gpr_avl_add(avl, box(719), box(2302), nullptr);
  avl = gpr_avl_add(avl, box(236), box(2303), nullptr);
  avl = remove_int(avl, 818);
  avl = gpr_avl_add(avl, box(727), box(2305), nullptr);
  avl = remove_int(avl, 892);
  avl = remove_int(avl, 871);
  avl = remove_int(avl, 231);
  avl = gpr_avl_add(avl, box(62), box(2309), nullptr);
  avl = gpr_avl_add(avl, box(953), box(2310), nullptr);
  avl = remove_int(avl, 701);
  avl = gpr_avl_add(avl, box(193), box(2312), nullptr);
  avl = remove_int(avl, 619);
  avl = remove_int(avl, 22);
  avl = remove_int(avl, 804);
  avl = remove_int(avl, 851);
  avl = gpr_avl_add(avl, box(286), box(2317), nullptr);
  avl = gpr_avl_add(avl, box(751), box(2318), nullptr);
  avl = remove_int(avl, 525);
  avl = gpr_avl_add(avl, box(217), box(2320), nullptr);
  avl = remove_int(avl, 336);
  avl = gpr_avl_add(avl, box(86), box(2322), nullptr);
  avl = gpr_avl_add(avl, box(81), box(2323), nullptr);
  avl = gpr_avl_add(avl, box(850), box(2324), nullptr);
  avl = remove_int(avl, 872);
  avl = gpr_avl_add(avl, box(402), box(2326), nullptr);
  avl = gpr_avl_add(avl, box(54), box(2327), nullptr);
  avl = gpr_avl_add(avl, box(980), box(2328), nullptr);
  avl = gpr_avl_add(avl, box(845), box(2329), nullptr);
  avl = remove_int(avl, 1004);
  avl = remove_int(avl, 273);
  avl = remove_int(avl, 879);
  avl = gpr_avl_add(avl, box(354), box(2333), nullptr);
  avl = gpr_avl_add(avl, box(58), box(2334), nullptr);
  avl = gpr_avl_add(avl, box(127), box(2335), nullptr);
  avl = remove_int(avl, 84);
  avl = gpr_avl_add(avl, box(360), box(2337), nullptr);
  avl = remove_int(avl, 648);
  avl = remove_int(avl, 488);
  avl = remove_int(avl, 585);
  avl = remove_int(avl, 230);
  avl = gpr_avl_add(avl, box(887), box(2342), nullptr);
  avl = remove_int(avl, 558);
  avl = remove_int(avl, 958);
  avl = gpr_avl_add(avl, box(822), box(2345), nullptr);
  avl = remove_int(avl, 1004);
  avl = remove_int(avl, 747);
  avl = gpr_avl_add(avl, box(631), box(2348), nullptr);
  avl = gpr_avl_add(avl, box(442), box(2349), nullptr);
  avl = remove_int(avl, 957);
  avl = remove_int(avl, 964);
  avl = gpr_avl_add(avl, box(10), box(2352), nullptr);
  avl = remove_int(avl, 189);
  avl = gpr_avl_add(avl, box(742), box(2354), nullptr);
  avl = remove_int(avl, 108);
  avl = gpr_avl_add(avl, box(1014), box(2356), nullptr);
  avl = remove_int(avl, 266);
  avl = remove_int(avl, 623);
  avl = remove_int(avl, 697);
  avl = gpr_avl_add(avl, box(180), box(2360), nullptr);
  avl = remove_int(avl, 472);
  avl = gpr_avl_add(avl, box(567), box(2362), nullptr);
  avl = remove_int(avl, 1020);
  avl = remove_int(avl, 273);
  avl = gpr_avl_add(avl, box(864), box(2365), nullptr);
  avl = gpr_avl_add(avl, box(1009), box(2366), nullptr);
  avl = remove_int(avl, 224);
  avl = remove_int(avl, 81);
  avl = gpr_avl_add(avl, box(653), box(2369), nullptr);
  avl = remove_int(avl, 67);
  avl = remove_int(avl, 102);
  avl = remove_int(avl, 76);
  avl = remove_int(avl, 935);
  avl = remove_int(avl, 169);
  avl = remove_int(avl, 232);
  avl = remove_int(avl, 79);
  avl = gpr_avl_add(avl, box(509), box(2377), nullptr);
  avl = remove_int(avl, 900);
  avl = remove_int(avl, 822);
  avl = remove_int(avl, 945);
  avl = remove_int(avl, 356);
  avl = gpr_avl_add(avl, box(443), box(2382), nullptr);
  avl = gpr_avl_add(avl, box(925), box(2383), nullptr);
  avl = remove_int(avl, 994);
  avl = remove_int(avl, 324);
  avl = gpr_avl_add(avl, box(291), box(2386), nullptr);
  avl = remove_int(avl, 94);
  avl = remove_int(avl, 795);
  avl = remove_int(avl, 42);
  avl = gpr_avl_add(avl, box(613), box(2390), nullptr);
  avl = remove_int(avl, 289);
  avl = gpr_avl_add(avl, box(980), box(2392), nullptr);
  avl = remove_int(avl, 316);
  avl = gpr_avl_add(avl, box(281), box(2394), nullptr);
  avl = gpr_avl_add(avl, box(1006), box(2395), nullptr);
  avl = remove_int(avl, 776);
  avl = gpr_avl_add(avl, box(108), box(2397), nullptr);
  avl = gpr_avl_add(avl, box(918), box(2398), nullptr);
  avl = remove_int(avl, 721);
  avl = remove_int(avl, 563);
  avl = gpr_avl_add(avl, box(925), box(2401), nullptr);
  avl = remove_int(avl, 448);
  avl = remove_int(avl, 198);
  avl = remove_int(avl, 1);
  avl = gpr_avl_add(avl, box(160), box(2405), nullptr);
  avl = remove_int(avl, 515);
  avl = gpr_avl_add(avl, box(284), box(2407), nullptr);
  avl = gpr_avl_add(avl, box(225), box(2408), nullptr);
  avl = remove_int(avl, 304);
  avl = gpr_avl_add(avl, box(714), box(2410), nullptr);
  avl = gpr_avl_add(avl, box(708), box(2411), nullptr);
  avl = gpr_avl_add(avl, box(624), box(2412), nullptr);
  avl = remove_int(avl, 662);
  avl = remove_int(avl, 825);
  avl = remove_int(avl, 383);
  avl = remove_int(avl, 381);
  avl = gpr_avl_add(avl, box(194), box(2417), nullptr);
  avl = remove_int(avl, 280);
  avl = remove_int(avl, 25);
  avl = remove_int(avl, 633);
  avl = gpr_avl_add(avl, box(897), box(2421), nullptr);
  avl = remove_int(avl, 636);
  avl = remove_int(avl, 596);
  avl = remove_int(avl, 757);
  avl = remove_int(avl, 343);
  avl = remove_int(avl, 162);
  avl = remove_int(avl, 913);
  avl = remove_int(avl, 843);
  avl = remove_int(avl, 280);
  avl = remove_int(avl, 911);
  avl = gpr_avl_add(avl, box(1008), box(2431), nullptr);
  avl = remove_int(avl, 948);
  avl = remove_int(avl, 74);
  avl = remove_int(avl, 571);
  avl = gpr_avl_add(avl, box(486), box(2435), nullptr);
  avl = gpr_avl_add(avl, box(285), box(2436), nullptr);
  avl = remove_int(avl, 304);
  avl = remove_int(avl, 516);
  avl = gpr_avl_add(avl, box(758), box(2439), nullptr);
  avl = gpr_avl_add(avl, box(776), box(2440), nullptr);
  avl = remove_int(avl, 696);
  avl = gpr_avl_add(avl, box(104), box(2442), nullptr);
  avl = gpr_avl_add(avl, box(700), box(2443), nullptr);
  avl = gpr_avl_add(avl, box(114), box(2444), nullptr);
  avl = gpr_avl_add(avl, box(567), box(2445), nullptr);
  avl = remove_int(avl, 620);
  avl = gpr_avl_add(avl, box(270), box(2447), nullptr);
  avl = remove_int(avl, 730);
  avl = gpr_avl_add(avl, box(749), box(2449), nullptr);
  avl = gpr_avl_add(avl, box(443), box(2450), nullptr);
  avl = remove_int(avl, 457);
  avl = gpr_avl_add(avl, box(571), box(2452), nullptr);
  avl = gpr_avl_add(avl, box(626), box(2453), nullptr);
  avl = remove_int(avl, 638);
  avl = remove_int(avl, 313);

  gpr_avl_unref(avl, nullptr);
}

static void test_stress(int amount_of_stress) {
  int added[1024];
  int i, j;
  int deletions = 0;
  gpr_avl avl;

  unsigned seed = (unsigned)time(nullptr);

  gpr_log(GPR_DEBUG, "test_stress amount=%d seed=%u", amount_of_stress, seed);

  srand((unsigned)time(nullptr));
  avl = gpr_avl_create(&int_int_vtable);

  memset(added, 0, sizeof(added));

  for (i = 1; deletions < amount_of_stress; i++) {
    int idx = rand() % (int)GPR_ARRAY_SIZE(added);
    GPR_ASSERT(i);
    if (rand() < RAND_MAX / 2) {
      added[idx] = i;
      printf("avl = gpr_avl_add(avl, box(%d), box(%d), NULL); /* d=%d */\n",
             idx, i, deletions);
      avl = gpr_avl_add(avl, box(idx), box(i), nullptr);
    } else {
      deletions += (added[idx] != 0);
      added[idx] = 0;
      printf("avl = remove_int(avl, %d); /* d=%d */\n", idx, deletions);
      avl = remove_int(avl, idx);
    }
    for (j = 0; j < (int)GPR_ARRAY_SIZE(added); j++) {
      if (added[j] != 0) {
        check_get(avl, j, added[j]);
      } else {
        check_negget(avl, j);
      }
    }
  }

  gpr_avl_unref(avl, nullptr);
}

int main(int argc, char* argv[]) {
  grpc_test_init(argc, argv);

  test_get();
  test_ll();
  test_lr();
  test_rr();
  test_rl();
  test_unbalanced();
  test_replace();
  test_remove();
  test_badcase1();
  test_badcase2();
  test_badcase3();
  test_stress(10);

  return 0;
}
